有n名学生,每个学生的信息包括姓名、学号、5门课程的成绩,平均成绩与总成绩。已知学生的姓名、学号与5门课程的成绩,你的任务是计算每个学生的平均成绩与总成绩,并将它们输出。学生的姓名中只能包含大小写字母与空格字符,不会超过20个字符;学生的学号是个长度不会超过20的字符串,只包含数字字符;课程成绩均为0—100的整数。 要求:在本题中,你要设计一个结构来存储一个学生的信息。在此结构中,需要有一个字符数组来存储姓名;一个字符数组来存储学号;一个长度为5的整型数组来存储5门课程的成绩;一个双精度浮点型变量存储平均成绩,一个整型变量存储总成绩。然后,你要设计一个结构数组来存储n名学生的信息。
时间: 2024-02-13 08:02:59 浏览: 85
好的,这是一个学生成绩信息的问题,我们需要设计一个结构体来存储一个学生的信息,然后再用结构体数组来存储n名学生的信息。以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
#define N 100
struct Student {
char name[21];
char id[21];
int score[5];
double avg_score;
int total_score;
};
int main() {
int n;
scanf("%d", &n);
struct Student students[N];
for (int i = 0; i < n; i++) {
scanf("%s %s %d %d %d %d %d", students[i].name, students[i].id, &students[i].score[0], &students[i].score[1], &students[i].score[2], &students[i].score[3], &students[i].score[4]);
// 计算平均成绩与总成绩
students[i].total_score = 0;
for (int j = 0; j < 5; j++) {
students[i].total_score += students[i].score[j];
}
students[i].avg_score = students[i].total_score / 5.0;
}
// 输出每个学生的信息
for (int i = 0; i < n; i++) {
printf("%s %s %d %d %d %d %d %.2lf %d\n", students[i].name, students[i].id, students[i].score[0], students[i].score[1], students[i].score[2], students[i].score[3], students[i].score[4], students[i].avg_score, students[i].total_score);
}
return 0;
}
```
我们首先定义了一个结构体`Student`来存储一个学生的信息,其中包括了姓名、学号、5门课程的成绩、平均成绩和总成绩。然后在主函数中,我们首先输入学生的数量n,再定义一个结构体数组`students`来存储n名学生的信息。
在输入每个学生的信息时,我们使用了scanf函数来输入学生的姓名、学号和5门课程的成绩,并且在输入时使用了指针来传递数组的地址。然后我们在循环中计算了每个学生的平均成绩和总成绩。
最后我们输出每个学生的信息,包括姓名、学号、5门课程的成绩、平均成绩和总成绩。在输出时,我们使用了printf函数,并且在输出浮点数时使用了%.2lf来保留两位小数。
阅读全文
相关推荐


















