永发信息网

c语言 从键盘输入6名学生的5门成绩,依次分别统计出每个学生的平均成绩并打印之。

答案:3  悬赏:70  手机版
解决时间 2021-04-24 16:02
  • 提问者网友:喧嚣尘世
  • 2021-04-24 04:41

#include<stdio.h>
main()
{ char name[6];
float marks[6][5],a[6];
int i,j,sum=0;
for(i=0;i<6;i++)
{ printf("No:",name[i]);
scanf("%s\n",&name[i]);
for(j=0;j<5;j++)
{ scanf("%f",&marks[i][j]);
sum=sum+marks[i][j];
}
printf("\n");
a[i]=(sum/5);
printf("%.2f\n",a[i]);
}

getch();
}

哪里出错了 怎么会输出有问题 求不出答案

最佳答案
  • 五星知识达人网友:白昼之月
  • 2021-04-24 05:02

#include<stdio.h>


#include<conio.h>
main()
{ char name[6];
float marks[6][5],a[6],sum=0.0;
int i,j,;
for(i=0;i<6;i++)
{ printf("No:" ); //这行应该只是提示No:然后让拥护输入吧,那name[i]就没用....
scanf("% c \n",&name[i]); //这name[i] 的状态只是char 类型的字符,不是字符串.要把%s 改成%c
for(j=0;j<5;j++)
{ scanf("%f",&marks[i][j]);
sum=sum+marks[i][j]; // 把marks数组和整型的sum 相加会导致数据的误差.可以把sum改成float
}
printf("\n");
a[i]=(sum/5);
printf("%.2f\n",a[i]);
}


getch(); //此函数是包含在头文件#include<conio.h>里面的.
}

全部回答
  • 1楼网友:一把行者刀
  • 2021-04-24 08:01

在输入每个学生数据前,应该将sum重置为0 ,否则就会累加上一个学生的成绩。

for(i=0;i<6;i++) { sum = 0; printf("No:",name[i]);

.......

  • 2楼网友:十鸦
  • 2021-04-24 06:23

sum=sum+marks[i][j];

sum 是整型

marks 是float ,转换错误!

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯