排序练习(入门篇)
排序练习1:
小明的班上有5个同学,这5个同学分别考了5分、 3分、5分、 2分和 8分,满分是10分。接下来将分数进行从大到小排序,排序后是8 5 5 3 2。编写一段程序,让计算机随机读入5个数然后将这5 个数从大到小输出?(题目来自《啊哈!算法》)
代码如下:
#include <stdio.h>
#define N 5
int main(int argc, const char *argv[])
{
int a[11]; //声明变量
int i,j,t;
for(i = 0;i < 10;i++) //初始化
a[i] = 0;
for(i = 0;i < N;i++) //依次输入班级同学的成绩
{
scanf("%d",&t);
if(t < 0 || t>10) //容错判断
{
printf("error!\n");
return 0;
}
a[t]++; //对应分数加一
}
for(i = 10; i >= 0; i--) // 依次判断a[0]~a[10]
{
for(j = 1; j <= a[i]; j++) //出现几次就打印几次
printf("%d ",i);
}
printf("\n");
return 0;
}
运行结果如下: