前几天在PTA说进行练习时遇到了一个问题。时在做基础编程题目集6-2(题目链接:https://pintia.cn/problem-sets/14/problems/734)时一直遇到的一个提示:
sample, 一般测试,有更新也有不更新的情况 |
下面是原代码:
double f( int n, double a[], double x )
{
int i;
double s=1,y=0;
for(i=0;i<n+1;i++)
{
s*=x;
y+=a[i]*s;
}
return y;
}
自我感觉没有错,百思不得其解。于是在csdn查询了一下,找到了别人的答案,代码如下:
double f( int n, double a[], double x )
{
int i,j;
double s=1,y=a[0];
for(i=1;i<n+1;i++)
{
s*=x;
y+=a[i]*s;
}
return y;
}
仔细对比以后,发现我的原程序存在一个小问题——
当i=0时,s=x。而原题意思是当i=0时,s应该为x的0次方,即s=1!!!