c语言输入某同学10门课成绩,找出最高分,并统计每个等级门数
时间: 2024-11-24 20:40:08 浏览: 6
结构体应用举例-C语言学习入门教程
在C语言中,你可以通过循环结构、数组以及函数来实现这个功能。首先,我们需要创建一个结构体来存储每门课的成绩及其对应的等级,然后编写一个主函数来接收用户输入并处理数据。
以下是一个简单的步骤描述:
1. 定义一个结构体`Course`,包含两个部分:`score`表示成绩,`grade`表示等级。
```c
typedef struct {
int score;
char grade[5];
} Course;
```
2. 创建一个数组`courses`来存储10门课程的数据。
```c
Course courses[10];
```
3. 编写一个函数`get_input`用于获取用户输入并更新结构体数组。
```c
void get_input(int index) {
printf("请输入第%d门课的成绩:", index + 1);
scanf("%d", &courses[index].score);
// 根据成绩范围设置等级
if (courses[index].score >= 90) {
strcpy(courses[index].grade, "A");
} else if (courses[index].score >= 80) {
strcpy(courses[index].grade, "B");
// ...以此类推
}
}
```
4. 主函数`main`中调用`get_input`函数,遍历整个数组,同时维护一个全局变量`max_score`记录最高分。
```c
int main() {
int max_score = -1; // 初始化为负一,避免未有输入先得最高分
for (int i = 0; i < 10; i++) {
get_input(i);
// 检查当前分数是否超过最高分
if (courses[i].score > max_score) {
max_score = courses[i].score;
}
}
printf("最高分为:%d\n", max_score);
// 统计每个等级的门数
int grade_counts[A+1] = {0}; // A+1是因为我们用了字符'A'作为最大等级
for (int i = 0; i < 10; i++) {
grade_counts[toupper(courses[i].grade[0]) - 'A']++;
}
printf("等级分布情况:\n");
for (int i = 0; i <= 'A'; i++) {
printf("Grade %c: %d门\n", 'A'+i, grade_counts[i]);
}
return 0;
}
```
阅读全文