2.定义学生结构体包含基本信息,至少含两个科目成绩,再定义一个结构体数组保存5个学生信息,使用指针统计5个学生每门课的总成绩和平均成绩并打印输出。
时间: 2024-09-10 15:21:23 浏览: 53
在C语言中,可以使用结构体(struct)来定义包含基本信息和成绩的学生结构体。然后,可以创建一个结构体数组来保存多个学生的信息。通过指针操作,我们可以遍历数组,计算每门课程的总成绩和平均成绩,并将结果打印输出。
以下是一个简单的示例代码:
```c
#include <stdio.h>
// 定义学生结构体
typedef struct {
char name[50]; // 学生姓名
int math; // 数学成绩
int english; // 英语成绩
} Student;
// 函数声明
void calculateAndPrintScores(Student *students, int numStudents);
int main() {
// 创建结构体数组保存5个学生信息
Student students[5] = {
{"张三", 85, 92},
{"李四", 78, 88},
{"王五", 90, 95},
{"赵六", 82, 85},
{"孙七", 77, 80}
};
// 使用指针调用函数计算并打印每个学生的总成绩和平均成绩
calculateAndPrintScores(students, 5);
return 0;
}
// 计算每门课程的总成绩和平均成绩,并打印输出
void calculateAndPrintScores(Student *students, int numStudents) {
int mathTotal = 0, englishTotal = 0;
// 遍历所有学生
for (int i = 0; i < numStudents; ++i) {
// 累加数学和英语成绩
mathTotal += students[i].math;
englishTotal += students[i].english;
}
// 计算平均成绩
float mathAverage = (float) mathTotal / numStudents;
float englishAverage = (float) englishTotal / numStudents;
// 打印结果
printf("数学总成绩:%d\n", mathTotal);
printf("英语总成绩:%d\n", englishTotal);
printf("数学平均成绩:%.2f\n", mathAverage);
printf("英语平均成绩:%.2f\n", englishAverage);
}
```
在这个示例中,我们定义了一个`Student`结构体,包含学生的姓名、数学和英语成绩。然后创建了一个`students`数组来存储5个学生的信息。`calculateAndPrintScores`函数通过指针遍历这个数组,累加数学和英语的成绩,计算平均分,并打印结果。
阅读全文