本题要求编写程序,考试结束了,全班同学的分数都出来了。需要对分数做一次排序,看看从高到低,分数的排列是怎样的。

本题要求编写程序,考试结束了,全班同学的分数都出来了。需要对分数做一次排序,看看从高到低,分数的排列是怎样的。
输入格式:
第一行是一个n,表示班级同学的人数,1<=n<=5000。第二行开始有n个分数,0<=分数<=100,分数都是整数,没有零点五分。
输出格式:
输出排序后的分数,按照从大到小排列,相同的分数排在一起,每两个分数之间间隔一个空格。
输入样例:
10
060 73 60 82 90 100 18 55 84
输出样例:
100 90 84 82 73 60 60 55 180

供参考 :

#include <stdio.h>
#define N 5001
int main()
{
    int score[N], n, i, j, t;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
        scanf("%d", &score[i]); //输入分数
    for (i = n - 1; i > 0; i--)
    {
        for (j = 0;j < i;j++)
        {
            if (score[j] < score[j+1]){
                t = score[j];
                score[j] = score[j+1];
                score[j+1] = t;
            }
        }
    }
    for (i = 0;i < n;i++)
        printf(i ? " %d" : "%d", score[i]);
    return 0;
}

img

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7778524
  • 以下回答由chatgpt基于相关博客总结生成:
    n = int(input())
    scores = list(map(int, input().split()))
    scores.sort(reverse=True)
    print(' '.join(map(str, scores)))