第一次写出的错误代码,系统提示sample, 系数有正负,输出负数,阶数不超过显示的MAXN=10,修改MAXN到超过10,很大的N,卡时间,三个错误
double f(int n,double a[],double x)
{
int i;
double sum;
for(i=0;i<=n;i++)
{
sum=a[i]+pow(x,i);
if(n>10)
break;
}
printf("%lf",sum);
}
然后突然发现.................我看错题了,而且此处确实也没法调用pow函数。
之后.....
double f(int n,double a[],double x)
{
double j=0;
double sum=1.0;
for(int i=0;i<=n;i++)
{
j=j*x;
sum=a[i]*x;
}
return sum;
}
改成了这样。还是不对。后来参考了别人的代码。
double f( int n, double a[], double x )
{
int i;
double X=1;
double sum=a[0];
for(i=1;i<=n;i++)//之前两个for循环套用完全可以用一个for循环来代替
{
X=X*x;
sum=sum+X*a[i];
}
return sum;
}