C语言定义学生结构体包含基本信息,至少含两个科目成绩,再定义一个结构体数组保存5个学生信息,使用指针统计5个学生每门课的总成绩和平均成绩并打印输出。
时间: 2024-09-10 14:20:04 浏览: 113
学生成绩信息表(c语言程序).pdf
在C语言中,定义一个包含学生基本信息和两个科目成绩的结构体,以及一个结构体数组用于保存5个学生的信息,可以通过以下步骤实现:
首先,定义学生信息的结构体`Student`,它包含学生的姓名、两个科目的成绩等基本信息:
```c
#include <stdio.h>
// 定义学生结构体
typedef struct {
char name[50]; // 学生姓名
int score1; // 科目1成绩
int score2; // 科目2成绩
} Student;
int main() {
// 定义一个结构体数组,保存5个学生信息
Student students[5] = {
{"学生A", 85, 92},
{"学生B", 78, 88},
{"学生C", 91, 84},
{"学生D", 74, 68},
{"学生E", 87, 95}
};
// 定义指针变量,用于访问结构体数组
Student *ptr = students;
// 初始化总成绩为0
int sum1 = 0, sum2 = 0;
// 循环遍历结构体数组,累加每门课的成绩,并计算平均分
for (int i = 0; i < 5; i++) {
sum1 += ptr[i].score1;
sum2 += ptr[i].score2;
}
// 打印每门课的总成绩和平均成绩
printf("科目1总成绩:%d,平均成绩:%.2f\n", sum1, sum1 / 5.0);
printf("科目2总成绩:%d,平均成绩:%.2f\n", sum2, sum2 / 5.0);
return 0;
}
```
上述代码定义了一个`Student`结构体,然后创建了一个包含5个`Student`对象的数组`students`。通过指针`ptr`遍历这个数组,累加每个学生的两门课程成绩,并在最后计算每门课程的总成绩和平均成绩。使用`printf`函数将结果输出到控制台。
请注意,在实际应用中,可能还需要考虑成绩的数据类型、数组大小动态分配、输入输出以及错误处理等问题。
阅读全文