非法指针运算 在函数

来源:百度知道 编辑:UC知道 时间:2024/05/23 13:07:42
main()
{
int i,j,a[5],b[5],z=0,zs=0;
printf("input 2 men score:china and english !/n");
for (i=0;i<5;i++);
scanf("%d",&a[i]);
for (j=0;j<5;j++);
scanf("%d",&b[j]);
for (i=0;i<5;i++);
z+=a;
z/=5;
for (j=0;j<5;j++);
zs+=b;
zs/=5;

printf("the china ping jun score is :%d, the english ping jun score is %d/n",z,zs);
}
就这里错了,z+=a;
z/=5;
zs+=b;
zs/=5;
怎么改?,这程序的功能就不用多说了,明眼人一看就知道.
可以了,能说说道理吗?

main()
{
int i,j,a[5],b[5];
float z=0,zs=0;
printf("input 2 men score:china and english !\n");
for (i=0;i<5;i++)
scanf("%d",&a[i]);
for (j=0;j<5;j++)
scanf("%d",&b[j]);
for (i=0;i<5;i++)
z+=a[i];
z/=5.0;
for (j=0;j<5;j++)
zs+=b[i];
zs/=5.0;

printf("the china ping jun score is :%f, the english ping jun score is %f\n",z,zs);
}

你怎么每个 for(……) 循环后都加了 ;
还有那调用数组元素你写个数组名算什么
换行是 \n

答案可能得不到正确的 整型相除一般取 0 的

厄…… 同 tsingkou
大括号是不要的 那样的话就除5次了

z+=a;改z+=a[i];
zs+=b;改zs+=b[j];
每个for(...);行末的分号去掉
另外注意,整数除法未必是你想要的结果,你自己看着办。

z+=a;改为: z+=a[i];
zs+=b; 改为:zs+=b[j];
另外2楼的
for (i=0;i<5;i++)
{
z+=a[i];
z/=5.0;
}
for (j=0;j<5;j++)
{
zs+=b[i];
zs/=5.0;
}
的花括号属于画蛇添足,运算的结果也是错误的.