C语言 利用结构体数组定义,使用scanf赋初值,对每一位学生求每位同学总成绩,平均成绩。要是完成有难度的。至少应该完成了对结构体数组的定义,赋初值,输出每位学生相关信息的程序语句
时间: 2024-11-18 07:19:03 浏览: 16
在C语言中,我们可以利用结构体数组来表示学生的相关信息,包括姓名和各科成绩。首先,我们需要定义一个结构体,例如:
```c
#include <stdio.h>
#include <string.h>
// 定义结构体,包含姓名和成绩
typedef struct {
char name[50];
int scores[5]; // 假设总共有5门课程
} Student;
int main() {
// 定义结构体数组,假设有3位学生
Student students[3] = {
{"张三", {80, 90, 70, 85, 95}},
{"李四", {92, 88, 78, 90, 86}},
{"王五", {87, 93, 75, 88, 92}}
};
// 对于每个学生,计算总成绩和平均成绩
for (int i = 0; i < 3; i++) {
int total_score = 0;
float avg_score;
// 求总成绩
for (int j = 0; j < 5; j++) {
total_score += students[i].scores[j];
}
// 计算平均分并保留一位小数
avg_score = (float)total_score / 5;
printf("学生 %s 的总成绩: %d\n", students[i].name, total_score);
printf("学生 %s 的平均成绩: %.1f\n", students[i].name, avg_score);
// 输出换行符以便下一个学生信息
printf("\n");
}
return 0;
}
```
在这个例子中,我们首先定义了一个`Student`结构体,然后创建了包含三个学生信息的结构体数组。接着遍历数组,分别计算每位学生各项成绩之和以及平均分,并打印出来。
阅读全文