用C语言定义一个struct student结构类型(包含姓名,3门课程成绩,平均分),再用此类型定义一个结构数组用来存储5个学生的信息,要求从键盘输入这5个学生的姓名及课程成绩,计算出平均分,并将学生的全部信息输出。
时间: 2023-12-07 18:03:07 浏览: 213
好的,我来帮你解决这个问题。以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
struct student {
char name[20];
float score[3];
float avg_score;
};
int main() {
struct student stu[5];
for (int i = 0; i < 5; i++) {
printf("请输入第%d个学生的姓名:", i+1);
scanf("%s", stu[i].name);
printf("请输入第%d个学生的3门课程成绩:", i+1);
for (int j = 0; j < 3; j++) {
scanf("%f", &stu[i].score[j]);
stu[i].avg_score += stu[i].score[j];
}
stu[i].avg_score /= 3;
}
printf("\n姓名\t成绩1\t成绩2\t成绩3\t平均分\n");
for (int i = 0; i < 5; i++) {
printf("%s\t", stu[i].name);
for (int j = 0; j < 3; j++) {
printf("%.1f\t", stu[i].score[j]);
}
printf("%.1f\n", stu[i].avg_score);
}
return 0;
}
```
代码分析:
首先定义了一个 `struct student` 结构类型,包括学生姓名 `name`、3门课程成绩 `score` 和平均分 `avg_score`。然后在 `main()` 函数中定义一个 `stu` 数组,用来存储5个学生的信息。
在 `for` 循环中,通过 `scanf()` 函数从键盘输入学生的姓名及课程成绩,并计算出平均分。
最后通过 `printf()` 函数输出每个学生的全部信息。
注意:在输入字符串时,要使用 `%s` 格式化字符;在输入浮点数时,要使用 `%f` 格式化字符。同时,记得初始化 `avg_score` 为 0,否则会出现未知的错误。
阅读全文