c语言实现一个班级,有12名学生,请编程实现从键盘出入12名学生某门功课的成绩,求出成绩最高分以及最高分学号,并将学生成绩从高到低进行排序,最后输出。
时间: 2023-08-12 19:03:55 浏览: 95
以下是一个简单的C语言程序,可以实现您的需求:
```c
#include<stdio.h>
#define N 12
struct student{
int id; // 学号
int score; // 成绩
};
int main(){
struct student stu[N];
int i, max, temp_id, temp_score;
printf("请输入12名学生的学号和成绩:\n");
for(i = 0; i < N; i++){
scanf("%d %d", &stu[i].id, &stu[i].score);
}
max = stu[0].score;
temp_id = stu[0].id;
temp_score = stu[0].score;
for(i = 1; i < N; i++){
if(stu[i].score > max){
max = stu[i].score;
temp_id = stu[i].id;
temp_score = stu[i].score;
}
}
printf("成绩最高的学生是%d号学生,成绩为%d分。\n", temp_id, temp_score);
printf("学生成绩从高到低排序为:\n");
for(i = 0; i < N; i++){
int j;
struct student temp;
for(j = i + 1; j < N; j++){
if(stu[i].score < stu[j].score){
temp = stu[i];
stu[i] = stu[j];
stu[j] = temp;
}
}
printf("%d号学生的成绩为%d分。\n", stu[i].id, stu[i].score);
}
return 0;
}
```
该程序定义了一个结构体`student`,包含学号和成绩两个属性。首先从键盘输入12名学生的学号和成绩,然后遍历数组找出成绩最高的学生,并输出其学号和成绩。接着使用冒泡排序法将学生成绩从高到低进行排序,最后输出每个学生的学号和成绩。
阅读全文