c语言输入n个学生的学号和成绩,按成绩从高到低排序后输出,n 小于50,学号小于10位代码
时间: 2023-06-07 19:09:53 浏览: 168
输出学生成绩(C语言)
可以的,我可以帮你解决这个问题。以下是代码:
```
#include <stdio.h>
typedef struct{
char id[11];
int score;
} Student;
void swap(Student *s1, Student *s2){
Student tmp = *s1;
*s1 = *s2;
*s2 = tmp;
}
void sort(Student *stu, int n){
for(int i=0; i<n-1; i++){
for(int j=i+1; j<n; j++){
if(stu[i].score < stu[j].score){
swap(&stu[i], &stu[j]);
}
}
}
}
int main(){
int n;
printf("请输入学生人数n:");
scanf("%d", &n);
Student stu[n];
printf("请输入每个学生的学号和成绩:\n");
for(int i=0; i<n; i++){
printf("第%d个学生:\n", i+1);
scanf("%s %d", stu[i].id, &stu[i].score);
}
sort(stu, n);
printf("成绩从高到低排序后的结果为:\n");
for(int i=0; i<n; i++){
printf("%s %d\n", stu[i].id, stu[i].score);
}
return 0;
}
```
输入样例:
```
请输入学生人数n:5
请输入每个学生的学号和成绩:
第1个学生:
101 90
第2个学生:
102 80
第3个学生:
103 70
第4个学生:
104 85
第5个学生:
105 95
```
输出样例:
```
成绩从高到低排序后的结果为:
105 95
101 90
104 85
102 80
103 70
```
阅读全文