【程序填空题】成绩统计。
【问题描述】
有N个学生,每个学生的数据包括学号、姓名、三门课成绩,用结构体类型保存,从键盘输入N个学生的数据,要求打印出三门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课成绩)。
【输入形式】
学生数量N占一行,每个学生的学号、姓名、三门课成绩放一行,用空格分隔。
【输出形式】
三门课的总平均成绩,最高分的学生的数据(包括学号、姓名、三门课成绩),用空格分隔。
【样例输入】
2
1 zhangsan 90 80 70
2 wangwu 80 70 60
【样例输出】
85 75 65
1 zhangsan 90 80 70
程序填空部分:
#include<stdio.h>
#define N 100
struct student
{
char num[10];
char name[10];
int score[3];
};
void input( (1) , int n)
{
int i;
for (i = 0; i < n; i++) {
scanf("%s%s%d%d%d", stu[i].num, stu[i].name, (2) , &stu[i].score[1], &stu[i].score[2]);
}
}
void print(struct student* stu, int n)
{
int i;
int max=0;
int maxn=0, sum[N] = {0};
double average[3] = { 0 };
for (i = 0; i < n; i++)
{
sum[i] = stu[i].score[0] + stu[i].score[1] + stu[i].score[2];
if ( (3) ) {
maxn = i;
max = sum[i];
}
average[0] += stu[i].score[0];
average[1] += stu[i].score[1];
average[2] += stu[i].score[2];
}
printf("%.lf %.lf %.lf\n", average[0] / n, average[1] / n, average[2] / n);
printf("%s %s %d %d %d\n", stu[maxn].num, stu[maxn].name, stu[maxn].score[0], stu[maxn].score[1], stu[maxn].score[2]);
}
int main()
{
struct student stu[N];
int n;
scanf("%d", &n);
input( (4) , n);
print(stu, n);
return 0;
}
正确答案:
第一空:
struct student* stu
第二空:
&stu[i].score[0];stu[i].score
第三空:
max < sum[i]
第四空:
stu