中国人际网gk卡是什么:C语言问题

来源:百度文库 编辑:高校问答 时间:2024/04/29 00:46:45
以下程序为什么数组a[i],b[j]的输出值和我预料中的不一样。郁闷中,请帮忙解决以下。谢谢!
void main()
{float a[10]={ 0.263,0.526,0.789,1.052,1.315,1.578,1.841,2.104,2.367,2.630},
b[10]={ 11.7138,18.4275,21.0773,22.0722,22.9334,
23.7946,24.6558,25.5170,26.3782,26.7327},
x[9]={0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9},
w[10],
m=a[0],
n=b[0];
int i=0,j;
for(j=0;j<10;j++)
{ a[j]=(a[j]-m)/(a[10]-m);
b[j]=(b[j]-n)/(b[10]-n);
}
for(j=0;j<10;j++)
printf("%f ",a[j]);
printf("\n");
for(j=0;j<10;j++)
printf("%f ",b[j]);
printf("\n");
while(i<9)
{ for(j=0;j<10;j++)
{ w[j]=x[i]*b[j]-(1-x[i])*a[j];
printf("%f ",w[j]);
}
printf("\n");
printf("\n");
i++;
}
}

for(j=0;j<10;j++)
{ a[j]=(a[j]-m)/(a[10]-m);
b[j]=(b[j]-n)/(b[10]-n);
}
其中的a[10] b[10]错误 c语言中的下标越限
改为a[9] b[9]

是用第一个数除最后一个数吧,数组里的元素是从 0 开始的,所以最后一个数下标为 数组大小减 1,