用C语言写一个基于学生成绩结构体数据的统计各科最高分和不及格人数
时间: 2024-03-01 15:51:32 浏览: 69
好的,下面是一个基于学生成绩结构体数据的统计各科最高分和不及格人数的C语言代码:
```c
#include <stdio.h>
#define MAX_STUDENTS 100
// 学生成绩结构体
typedef struct {
char name[20];
int math;
int english;
int computer;
} student;
int main() {
int n; // 学生数
student students[MAX_STUDENTS]; // 学生数组
int max_math = 0, max_english = 0, max_computer = 0; // 各科最高分
int fail_math = 0, fail_english = 0, fail_computer = 0; // 各科不及格人数
// 输入学生数和成绩
printf("请输入学生数:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的姓名、数学成绩、英语成绩和计算机成绩:", i + 1);
scanf("%s%d%d%d", students[i].name, &students[i].math, &students[i].english, &students[i].computer);
// 统计各科最高分
if (students[i].math > max_math) {
max_math = students[i].math;
}
if (students[i].english > max_english) {
max_english = students[i].english;
}
if (students[i].computer > max_computer) {
max_computer = students[i].computer;
}
// 统计各科不及格人数
if (students[i].math < 60) {
fail_math++;
}
if (students[i].english < 60) {
fail_english++;
}
if (students[i].computer < 60) {
fail_computer++;
}
}
// 输出各科最高分和不及格人数
printf("数学最高分:%d\n", max_math);
printf("英语最高分:%d\n", max_english);
printf("计算机最高分:%d\n", max_computer);
printf("数学不及格人数:%d\n", fail_math);
printf("英语不及格人数:%d\n", fail_english);
printf("计算机不及格人数:%d\n", fail_computer);
return 0;
}
```
这个程序中,我们定义了一个学生成绩结构体,包含学生的姓名、数学成绩、英语成绩和计算机成绩。接着,我们通过输入学生数和成绩来初始化一个学生数组,并在输入的同时统计各科最高分和不及格人数,最后输出统计结果。
阅读全文