主题:求助,程序问题,大家能不能帮忙看下,在线等,谢谢了
是langrange插值的程序
原函数是1/(1+x*x)
#include <stdio.h>
#include <math.h>
#define n 20
void main()
{
double a[n+1],b[n+1],c[n+1];
double lx,x;
int i,j;
for(i=0;i<n;i++)
{
a[i]=-1+i*2/n;
b[i]=1/(1+a[i]*a[i]);
}
printf("input number x:\n");
scanf("%d",&x);
lx=0;
for(i=0;i<n;i++)
{
c[i]=1;
for(j=0;j<n;j++)
{
if(j==i)
c[i]=c[i];
else
c[i]=c[i]*(x-a[j])/(a[i]-a[j]);
}
lx=lx+c[i]*b[i];
}
printf("%d\n",lx);
}
编译没有报错
但是程序运行结果总是0
原函数是1/(1+x*x)
#include <stdio.h>
#include <math.h>
#define n 20
void main()
{
double a[n+1],b[n+1],c[n+1];
double lx,x;
int i,j;
for(i=0;i<n;i++)
{
a[i]=-1+i*2/n;
b[i]=1/(1+a[i]*a[i]);
}
printf("input number x:\n");
scanf("%d",&x);
lx=0;
for(i=0;i<n;i++)
{
c[i]=1;
for(j=0;j<n;j++)
{
if(j==i)
c[i]=c[i];
else
c[i]=c[i]*(x-a[j])/(a[i]-a[j]);
}
lx=lx+c[i]*b[i];
}
printf("%d\n",lx);
}
编译没有报错
但是程序运行结果总是0