我和朋友两个人运行相同的代码,但是他运行没有问题,我运行以后结果就不对,编译器都是DVEC++
#include<stdio.h>
int main()
{
float aver(float a[],int n);
float zu1[5],zu2[10];
int i;
printf("请输入第1组的学生成绩:\n");
for(i=0;i<4;i++)
scanf("%f",&zu1[i]);
printf("请输入第2组的学生成绩:\n");
for(i=0;i<9;i++)
scanf("%f",&zu2[i]);
printf("第一组的平均分是%f\n",aver(zu1,5));
printf("第二组的平均分是%f\n",aver(zu2,10));
return 0;
}
float aver(float a[],int n)
{
float sum=a[0],pingjunshu;int i;
for(i=1;i<n;i++)
sum=sum+a[i];
pingjunshu=sum/n;
return(pingjunshu);
}
图片我弄不进来,运行结果是不一样的就
最开始我觉得是全半角的分号有问题,但是我让他重新用我给他发的代码运行他的没有出错,我的就可以运行但是结果是错的
1.第一,float zu1[5],zu2[10];没有初始化,里面可能有垃圾数据;
2.第二,for(i=0;i<4;i++) for(i=0;i<9;i++) 对数组实际输入4个 9个数;zu1[4],zu2[9]元素没有赋值;
3.第三,printf("第一组的平均分是%f\n",aver(zu1,5));
printf("第二组的平均分是%f\n",aver(zu2,10));
会读取zu1[4],zu2[9]元素,而第二步是未对他们赋值的,所以取得是垃圾数据;
所以你的代码有问题。另个人,在同一台电脑运行多次,结果也是不一样。