LOADING...

加载过慢请开启缓存(浏览器默认开启)

loading

Dream

this is my blog

you can download my article

2023/3/20

给成绩排序并按分数输出人名

现在分别有 5 个人的名字和分数:huhu 5 分、haha 3 分、xixi 5 分、hengheng 2 分和 gaoshou 8 分请按照分数从高到低,输出他们的名字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h> 
struct student
{
char name[21];
char score;
}; 这里创建了一个结构体用来存储姓名和分数
int main()
{
struct student a[100],t;
int i,j,n;
scanf("%d",&n); 输入一个数n
for(i=1;i<=n;i++) 循环读入n个人名和分数
scanf("%s %d",a[i].name,&a[i].score);
按分数从高到低进行排序
for(i=1;i<=n-1;i++)
{
for(j=1;j<=n-i;j++)
{
if(a[j].score<a[j+1].score) 对分数进行比较
{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
}
}
for(i=1;i<=n;i++) 输出人名
printf("%s\n",a[i].name);
getchar();getchar();
return 0;
}

说几个要点说白了就是一个结构型变量,存一个分数再存一个名字,用存数字的子变量去进行排序,然后输出存名字的自变量,还有一个要点是,要事先再定义一个结构性变量,冒泡交换位置的时候不能光交换数字啊,得把对应名字也给交换过去啊

阅读全文
1
头像
galoisfans
不定期分享遇到的小bug