大侠帮看看 哪编错了!!急

来源:百度知道 编辑:UC知道 时间:2024/06/05 20:39:15
#include <stdio.h>
#include <math.h>

float fun(float *x,float *y,int n,float t)
{ int i,j;
float p2;
float p1=0;
for(i=0;i<n;i++)
{ p2=y[i];
for(j=0;j<n;j++)
{ if(j!=i)
p2=p2*(t-x[j])/(x[i]-x[j]);
}
p1+=p2;
}
return (p1);
}
void main()
{ int n,m;
float x[10],y[10];
float F,t;
printf("插值项数和插值\n");
scanf("%d\n",&n);
scanf("%f\n",&t);
printf("输入X与Y值\n");
for(m=0;m<n;m++)
scanf("%f%f",&x[m],&y[m]);
F=fun(x,y,n,t);
printf("%f\n",F);
}

数组输完 不出结果、、、

修改如下:

//---------------------------------------------------------------------------
#include <stdio.h>
#include <math.h>

float fun(float *x,float *y,int n,float t)
{ int i,j;
float p2;
float p1=0;
for(i=0;i<n;i++)
{ p2=y[i];
for(j=0;j<n;j++)
{ if(j!=i)
p2=p2*(t-x[j])/(x[i]-x[j]);
}
p1+=p2;
}
return (p1);
}
void main()
{ int n,m;
float x[10],y[10];
float F,t;
printf("插值项数和插值\n");
scanf("%d",&n);/**********注意这里*********/
scanf("%f",&t);/**********注意这里*********/
printf("输入X与Y值\n");
for(m=0;m<n;m++)
scanf("%f%f",&x[m],&y[m]);
F=fun(x,y,n,t);
printf("%f\n",F);
}
<