C语言 利用结构体数组定义,使用scanf赋初值,对每一位学生求每位同学总成绩,平均成绩。
时间: 2024-11-22 07:38:34 浏览: 29
在C语言中,你可以使用结构体数组来存储每个学生的相关信息,比如姓名、各科成绩等。首先,定义一个包含姓名和成绩字段的结构体,然后创建一个该结构体类型的数组来表示所有学生。下面是一个简单的例子:
```c
#include <stdio.h>
#include <string.h>
// 定义结构体,表示一个学生
typedef struct {
char name[50]; // 假设姓名最多50字符
int scores[3]; // 假设有三门课
} Student;
int main() {
const int num_students = 3; // 学生总数
// 结构体数组声明
Student students[num_students];
// 使用scanf给每位学生赋初值
for (int i = 0; i < num_students; i++) {
printf("请输入学生 %d 的姓名: ", i + 1);
fgets(students[i].name, sizeof(students[i].name), stdin); // 去除末尾换行符
students[i].name[strcspn(students[i].name, "\n")] = '\0'; // 替换换行符
printf("请输入第%d位学生各科成绩(用空格分隔): ", i + 1);
scanf("%d %d %d", &students[i].scores[0], &students[i].scores[1], &students[i].scores[2]);
}
// 对每位同学求总成绩和平均成绩
for (int i = 0; i < num_students; i++) {
int total_score = students[i].scores[0] + students[i].scores[1] + students[i].scores[2];
float average_score = (float)total_score / 3;
printf("学生 %s 的总成绩是: %d\n", students[i].name, total_score);
printf("学生 %s 的平均成绩是: %.2f\n", students[i].name, average_score);
}
return 0;
}
```
在这个程序中,用户会被提示输入每位学生的姓名和三门课程的成绩,然后计算并打印出每个人的总成绩和平均成绩。
阅读全文