回 帖 发 新 帖 刷新版面

主题:求助,程序问题,大家能不能帮忙看下,在线等,谢谢了

是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个回复)

沙发

设置调试点,看看在哪里出错就ok啦。这个问题还要问啊

我来回复

您尚未登录,请登录后再回复。点此登录或注册