1、构造一个学生结构体,成员包括学号,姓名,四门成绩,以及平均成绩; 2、从键盘上输入学生的学号,姓名和四门成绩; 找出考试有不及格的学生姓名并输出;找出平均分在90分以上的学生并输出。用c语言
时间: 2024-09-24 15:17:21 浏览: 45
在C语言中,你可以创建一个名为`Student`的结构体来表示学生信息,并使用数组或者动态内存分配来存储多个学生。以下是实现这一功能的一个例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生结构体
typedef struct {
int id; // 学号
char name[50]; // 姓名
float scores[4]; // 四门成绩
float avg; // 平均成绩
} Student;
// 计算平均成绩函数
float calculate_avg(float scores[]) {
float sum = 0;
for (int i = 0; i < 4; i++) {
sum += scores[i];
}
return sum / 4;
}
// 检查是否不及格
int check_failing(Student student) {
for (int i = 0; i < 4; i++) {
if (student.scores[i] < 60) { // 如果任一门不及格返回1
return 1;
}
}
return 0;
}
int main() {
Student students[10]; // 创建一个包含10个学生的信息数组
int num_students = 0;
// 输入学生信息
while (num_students < sizeof(students)/sizeof(students[0])) {
printf("请输入学号, 姓名及四门成绩(每门成绩之间用空格隔开):\n");
scanf("%d %s", &students[num_students].id, students[num_students].name);
// 分别读取四门成绩
for (int i = 0; i < 4; i++) {
scanf("%f", &students[num_students].scores[i]);
}
// 计算并设置平均成绩
students[num_students].avg = calculate_avg(students[num_students].scores);
num_students++;
}
// 遍历学生,找出不及格和平均分高于90的学生
for (int i = 0; i < num_students; i++) {
if (check_failing(students[i])) {
printf("学生 %s 的成绩中有不及格。\n", students[i].name);
} else if (students[i].avg > 90) {
printf("学生 %s 的平均分为 %.2f,超过90分。\n", students[i].name, students[i].avg);
}
}
return 0;
}
```
阅读全文