2、编程实现输入 10 个学生的姓名以及 5 门课的成绩。
1)计算每个学生的平均分
2)计算每门课的平均分
3)分析出每门课的最高分和对应的学生姓名。
代码如下,如有帮助,请帮忙采纳一下,谢谢。
#include <stdio.h>
struct Student
{
char name[20];
int score[5];
float avg;
};
int main()
{
int i,j;
struct Student a[10];
float avg[5] = {0}; //每门课的平均分
int sum;
int maxscore[5],maxindex[5];
for(i = 0;i<10;i++)
{
printf("请输入学生%d的姓名和成绩(以空格分隔):" ,i+1);
sum = 0;
scanf("%s",a[i].name);
for(j = 0;j<5;j++)
{
scanf("%d",&a[i].score[j]);
sum += a[i].score[j];
}
a[i].avg = sum/5.0; //计算平均成绩
}
printf("平均成绩如下:\n");
for(i = 0;i< 10;i++)
printf("%s %.2f\n",a[i].name,a[i].avg);
printf("没门课的平均分:\n");
for(j = 0;j< 5;j++)
{
avg[j] = 0;
maxscore[j] = a[0].score[j];
maxindex[j] = 0;
for(i=0;i<10;i++)
{
avg[j] += a[i].score[j];
//求最大值
if(a[i].score[j] > maxscore[j])
{
maxscore[j] = a[i].score[j];
maxindex[j] = i;
}
}
avg[j]/= 10.0;
printf("第%d门课的平均分:%.2f\n",j+1,avg[j]);
}
printf("每门课的最高分和对应的学生姓名:\n");
for(j = 0;j<5;j++)
printf("第%d门课最高分:%d,学生姓名:%s\n",j+1,a[maxindex[j]].score[j],a[maxindex[j]].name);
return 0;
}
C语言打扰了,表示不会。