定义一个学生结构体Student,包含语文数学英语三个成员(整形数字)。然后补全一个 函数,根据学生的成绩找到最高的一门,并编写一个打印函数,调用补全的函数输出最高分。 结构体:
时间: 2024-09-29 19:09:29 浏览: 64
首先,我们可以定义一个名为`Student`的结构体,它有三个整数成员分别代表语文、数学和英语的成绩:
```c
typedef enum {Chinese, Math, English} Subject;
struct Student {
int score[3]; // 学科分数数组,每门学科对应一个索引
Subject highestSubject;
};
```
接下来,我们补充一个函数`findHighestScore`,用于找出学生最高分所在的科目及其分数:
```c
int findHighestScore(const struct Student* student) {
int maxScore = student->score[Chinese];
Subject highestSubject = Chinese;
for (Subject subject : {Math, English}) {
if (student->score[subject] > maxScore) {
maxScore = student->score[subject];
highestSubject = subject;
}
}
return maxScore;
}
```
然后,我们编写一个`printHighestScore`函数,调用`findHighestScore`并输出结果:
```c
void printHighestScore(const struct Student* student) {
int highestScore = findHighestScore(student);
switch (highestSubject) {
case Chinese:
printf("最高分是语文,分数:%d\n", highestScore);
break;
case Math:
printf("最高分是数学,分数:%d\n", highestScore);
break;
case English:
printf("最高分是英语,分数:%d\n", highestScore);
break;
}
}
```
现在你可以创建一个`Student`类型的实例,并调用这两个函数来展示最高分:
```c
int main() {
struct Student stu = { {85, 90, 92}, English }; // 示例学生的成绩
printHighestScore(&stu);
return 0;
}
```
阅读全文