哪位大神c语言学得好,给看一下这程序有什么问题呗,运行不出来。。。想求出a[j], 感激不尽!
#include<stdio.h>#include<math.h>voidmain(){inti,j;floata[1]={0.129};floatf=0,d=0,m,n...
#include <stdio.h>
#include<math.h>
void main()
{
int i,j;
float a[1]={0.129};
float f=0,d=0,m,n;
float x[5]={0.220,0.660,0.144,0.002,0.004};
float k[5]={66.67,50,0.015,100,33.33};
for(j=1;m>1e-4;j++)
{
float a[10];
for(i=0;i<5;i++)
{ f+=x[i]*(1-k[i])/(a[j]+k[i]);
d+=-x[i]*(1-k[i])/pow((a[j]+k[i]),2);}
n=a[j]-f/d;
m=n/a[j];}
printf("a[j]\n",a[j]);
} 展开
#include<math.h>
void main()
{
int i,j;
float a[1]={0.129};
float f=0,d=0,m,n;
float x[5]={0.220,0.660,0.144,0.002,0.004};
float k[5]={66.67,50,0.015,100,33.33};
for(j=1;m>1e-4;j++)
{
float a[10];
for(i=0;i<5;i++)
{ f+=x[i]*(1-k[i])/(a[j]+k[i]);
d+=-x[i]*(1-k[i])/pow((a[j]+k[i]),2);}
n=a[j]-f/d;
m=n/a[j];}
printf("a[j]\n",a[j]);
} 展开
展开全部
按照原来的代码,我只能给你改到这了,代码意思我一句没变,只是把错误去除了。至于结果,其实我也不知道你要搞是啥。。。
#include <stdio.h>
#include<math.h>
void main()
{
int i=0,j=1;
float a[1]={0.129};
float f=0,d=0,m=0,n;
float x[5]={0.220,0.660,0.144,0.002,0.004};
float k[5]={66.67,50,0.015,100,33.33};
//for(j=1;m>1e-4;j++)
do
{
float a[10];
for(i=0;i<5;i++)
{
f+=x[i]*(1-k[i])/(a[j]+k[i]);
d+=-x[i]*(1-k[i])/pow((a[j]+k[i]),2);}
n=a[j]-f/d;
m=n/a[j];
printf("%f\n",a[j]);
j++;
}
while(m>1e-4);
}
#include <stdio.h>
#include<math.h>
void main()
{
int i=0,j=1;
float a[1]={0.129};
float f=0,d=0,m=0,n;
float x[5]={0.220,0.660,0.144,0.002,0.004};
float k[5]={66.67,50,0.015,100,33.33};
//for(j=1;m>1e-4;j++)
do
{
float a[10];
for(i=0;i<5;i++)
{
f+=x[i]*(1-k[i])/(a[j]+k[i]);
d+=-x[i]*(1-k[i])/pow((a[j]+k[i]),2);}
n=a[j]-f/d;
m=n/a[j];
printf("%f\n",a[j]);
j++;
}
while(m>1e-4);
}
追问
其实是想让a[j]满足一定精度后输出,类似牛顿迭代法,不知道怎么与程序中的两个函数嵌套,初值a[1]=0.129,。。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这程序有问题
除了打印语句语法错误外,循环逻辑不合理,循环内重复定义数据,肯定错误
你要解决什么问题?
除了打印语句语法错误外,循环逻辑不合理,循环内重复定义数据,肯定错误
你要解决什么问题?
追问
其实是想让a[j]满足一定精度后输出,类似牛顿迭代法,不知道怎么与程序中的两个函数嵌套,初值a[1]=0.129,。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你程序内容乱七八糟的,说清楚要做什么,方便给你改
float a[1]={0.129}; 开头定个数组
float a[10]; 这里又来一个重名的
f+=x[i]*(1-k[i])/(a[j]+k[i]); 这里用到数组元素,可是数组没人给赋值啊
float a[1]={0.129}; 开头定个数组
float a[10]; 这里又来一个重名的
f+=x[i]*(1-k[i])/(a[j]+k[i]); 这里用到数组元素,可是数组没人给赋值啊
更多追问追答
追问
其实是想让a[j]满足一定精度后输出,类似牛顿迭代法,不知道怎么与程序中的两个函数嵌套,初值a[1]=0.129,。。。
追答
#include
#include
int main()
{
int i,j;
float a=0.129;
float f=0,d=0,m;
float x[5]={0.220,0.660,0.144,0.002,0.004};
float k[5]={66.67,50,0.015,100,33.33};
m=1 ; //m没有初值,如何进行循环判断??
for(j=1;fabs(m)>1e-4;j++)
{
d=0;f=0;
for(i=0;i<5;i++)
{
f+=x[i]*(1-k[i])/(a+k[i]);
d+=-x[i]*(1-k[i])/pow((a+k[i]),2);
}
m=f/d;
a -= m ;
}
printf("a[%d]=%f\n",j , a);
return 0;
}
不知道是不是这样子
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
float a[1]={0.129};
float a[10];
这2句好像有矛盾吧,学过好久了,也不是记很清楚了!
float a[10];
这2句好像有矛盾吧,学过好久了,也不是记很清楚了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-03-14
展开全部
更大更大阿德三国尕阿哥
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询