结构体
【问题描述】编写一个输入函数,输入若干个学生的个人信息(包括学号、姓名、三门课的成绩);一个统计函数,统计每个学生的平均分并输出结果(包括学号、姓名和平均分);一个统计函数,统计每门课程的平均分,并输出统计结果,在主函数中调用输入函数输入信息,再分别调用统计每个学生平均分和每门课程平均分的函数。【输入形式】第一行输入学生数n,后面依次输入每个学生的信息,每个学生一行
【输出形式】每位学生的平均分(每位学生一行)和每门课程(每门课程一行)平均分,保留两位小数, 数据之间以空格分开。
【样例输入】
2
101李明 67 86 91
102张丽 77 81 79
【样例输出】
101 李明 81.33
102 张丽 79.00
72.00 83.50 85.00 #include <stdio.h>
typedef struct{
float a, b, c;
}results;
typedef struct{
int id;
char name;
results res;
}students;
void input(students arr[], int n){
for(int i = 0; i < n; i++){
scanf("%d%s%f%f%f", &arr.id, arr.name, &arr.res.a, &arr.res.b, &arr.res.c);
}
}
void output(students arr[], int n){
float a, b, c = a = b = 0;
for(int i = 0; i < n; i++){
a += arr.res.a;
b += arr.res.b;
c += arr.res.c;
printf("%d %s %.2f\n", arr.id, arr.name, (arr.res.a + arr.res.b + arr.res.c) / 3);
}
printf("%.2f %.2f %.2f", a/n, b/n, c/n);
}
int main()
{
int n;
scanf("%d", &n);
students arr;
input(arr, n);
output(arr, n);
return 0;
}
页:
[1]