将系数对应保存在一数组中.
循环遍历n次,每次都做sum+=a[i]*pow(x,i);
#include<stdio.h>
#include<math.h>
int main()
{
int i,n;
float data[50],x,fsum=0;
printf("输入系数个数:");
scanf("%d",&n);
printf("依次输入%d个系数:",n);
for(i=0;i<n;i++)
{
scanf("%f",&data[i]);
}
printf("输入自变量x:");
scanf("%f",&x);
for(i=0;i<n;i++)
{
fsum+=data[i]*pow(x,i);
}
printf("输出因变量y:%f\n",fsum);
return(0);
}
#include "math.h"
double yynchls(a,n,x)
int n;
double x,a[];
{ int i;
double u;
u=a[n-1];
for (i=n-2; i>=0; i--)
u=u*x+a[i];
return(u);
}
上面的不知道对不对,是我在别的论坛上找的,和你的好象不太一样
n-2: .u=a[n-1]*x+a[n-2];
n-3: u=(a[n-1]*x+a[n-2])*x+a[n-3]=a[N-1]*x*x+a[N-2]*x+a[N-3];
......
.....
1 : u=a[n-1]*x^n+...a[0];
迭代法.比我的要好多了.