📄 分段线性插值.c
字号:
#include<stdio.h>
void main()
{
float xy[2][11],x,y;
int n,i,j;
char flag='y';
printf("input n,max[n]=10\n");
scanf("%d",&n);
printf("input x[i],y[i]:\n");
printf("input x[i]:\n");
for(j=0;j<=n;j++)
scanf("%f",&xy[0][j]);
printf("input y[i]:\n");
for(j=0;j<=n;j++)
scanf("%f",&xy[1][j]);
getchar();
printf("please enter 'y' to start:\n");
for(;flag==getchar();)
{
printf("input x:\n");
scanf("%f",&x);
if(x-xy[0][0]<0)i=0;
else if(x-xy[0][n]>=0)i=n-1;
else for(i=0;i<n-1;i++)
if(x-xy[0][i]>=0&&x-xy[0][i+1]<0)break;
y=(x-xy[0][i+1])/(xy[0][i]-xy[0][i+1])*xy[1][i]+(x-xy[0][i])/(xy[0][i+1]-xy[0][i])*xy[1][i+1];
printf("output y:\n");
printf("%f",y);
getchar();
printf("\nplease enter 'y' to continue:\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -