排序练习2

排序练习(初级篇)

排序练习2:
题目:
现在班级有 5 个人的名字和分数:huhu 5 分、 haha 3 分、 xixi 5 分、 hengheng 2 分和 gaoshou 8 分(满分是10分)。请编写一段程序,让计算机按照分数从高到低,输出他们的名字。
即应该输出 gao、 huhu、 xixi、 haha、hengheng。(题目来自《啊哈!算法》)
代码如下:



#include <stdio.h>
#define N 5
struct student //定义结构体,存储姓名和分数
{
       char name[100];
       int score;
};
int main(int argc, const char *argv[])
{
       int n,i,j;
       struct student a[N],t;
       scanf("%d",&n);//输入班级人数
       for(i = 0; i < n ; i++) //输入人名和分数
       	    scanf("%s%d",a[i].name,&a[i].score);
       for(i = 0; i < n; i++) //按成绩从高到低进行排序(冒泡排序)
       {
              for(j= 0; 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 = 0; i < n; i++) //输出人名
       {
              printf("%s",a[i].name);
              printf("\n");
       }
       return 0;
}

运行结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41906348/article/details/87022358