fc5808刀头拆卸 视频:求教:我的错在那里?

来源:百度文库 编辑:神马品牌网 时间:2024/05/15 06:04:57
这是我编的一个程序,那位高手帮我看看究竟错在那里了,编译时没错误,但运行时,输出:floating point error : Domain 谢谢了
# include <stdio.h> # include <math.h>
function_1(double b[],int m)
{ int k=0;int i;
for(i=1;i<m;i++)
if( fabs(b[i])> fabs(b[k]) ) k=i;
return (k);
}
function_2(double a )
{ if(a>=0) return (1);
else return (-1);
}

main()
{ double a[501]={0.1};double b1[501],b2[501],c;double A[5][501]={0};double b[501]={0.1};
int i,j;double d,c0,c1,c2,c3;double sum; int k,m,p;

for(i=2;i<501;i++)
A[0][i]=-1.0;
for(i=1;i<501;i++)
A[1][i]=2.0;
for(i=0;i<501;i++)
{j=i+1;
A[2][i]=(20.5-0.3*j)*sin(0.2*j);
}
for(i=0;i<500;i++)
A[3][i]=2.0;
for(i=0;i<499;i++)
A[4][i]=-1.0;

c1=0;
do{c0=c1; p=function_1(a,501);
d=a[p];c=fabs(d);
for(i=0;i<501;i++)
b1[i]=a[i]/c;
for(j=0;j<2;j++)
{sum=0.0;
for(i=2-j,k=0;i<5;i++,k++)
sum=sum+A[i][j]*b1[k];
a[j]=sum;}

for(i=2;i<499;i++)
{sum=0;
for(j=0,k=i-2;j<5;j++,k++)
sum=sum+A[j][i]*a[k];
a[i]=sum;
}
for(i=499,m=4;i<501;i++,m--)
{sum=0;
for(j=0,k=i-2;j<m;j++,k++)
sum=sum+A[j][i]*a[k];
a[i]=sum;
}
c1=function_2(d)*a[p];
} while(function_1(c1-c0)/function_1(c1)>0.0000000000001) ;
printf("%.12f",c1);
}

你的倒数第三行这样引用的:function_1(c1-c0)
而你的function_1是这样定义的:function_1(double b[],int m)
首先参数类型和数量都不对.