1、构造一个学生结构体,成员包括学号,姓名,四门成绩,以及平均成绩; 2、从键盘上输入学生的学号,姓名和四门成绩; 找出考试有不及格的学生姓名并输出;找出平均分在90分以上的学生并输出。
时间: 2024-09-25 16:05:48 浏览: 87
首先,我们来构建一个名为`Student`的结构体,包含所需的成员变量:
```c++
struct Student {
int studentID;
char name[50];
float scores[4]; // 四门成绩
float averageScore; // 平均成绩
};
```
接下来,我们需要编写函数来实现用户输入和处理:
```c++
void inputStudent(Student* s) {
printf("请输入学生学号:");
scanf("%d", &s->studentID);
printf("请输入学生姓名:");
fgets(s->name, sizeof(s->name), stdin); // 注意去掉换行符
for (int i = 0; i < 4; i++) {
printf("请输入第 %d 门课程的成绩:", i+1);
scanf("%f", &s->scores[i]);
}
// 计算平均成绩
s->averageScore = 0;
for (float score : s->scores) {
s->averageScore += score;
}
s->averageScore /= 4;
}
void findBelowPassingGrade(Student* students, int numStudents) {
for (int i = 0; i < numStudents; i++) {
if (students[i].scores[0] < 60) { // 假设及格线为60分
printf("学生姓名:%s 考试不及格\n", students[i].name);
}
}
}
void findAbove90Average(Student* students, int numStudents) {
for (int i = 0; i < numStudents; i++) {
if (students[i].averageScore > 90) {
printf("学生姓名:%s 平均分超过90分\n", students[i].name);
}
}
}
```
最后,你可以创建一个`Student`数组,并调用上述函数来完成输入、查找和输出:
```c++
int main() {
int numStudents;
printf("请输入学生数量:");
scanf("%d", &numStudents);
Student students[numStudents];
// 输入所有学生信息
for (int i = 0; i < numStudents; i++) {
inputStudent(&students[i]);
}
// 查找并输出
findBelowPassingGrade(students, numStudents);
findAbove90Average(students, numStudents);
return 0;
}
```
阅读全文