c语言程序问题输入输出

期末考试之排名次
期末考试结束了,童鞋们的成绩也出来了,可是为了排名次可忙坏了他,因为学生太多了。这时,他把这个任务交给了你,希望你能帮他完成。作为IT人,你当然不能用笨笨的人工方法了,编程解决才是好办法。
从键盘输入学生人数n(0输入
第一行一个整数n,代表学生的人数。
接下来一行输入n个正整数,表示每个学生的成绩。
输出
在一行上按照从大到小顺序输出学生成绩,每个成绩(包括最后一个数据)后面有一个空格。
难度
一般
输入示例
5
85 74 93 82 71
输出示例
93 85 82 74 71

#include <stdio.h>
int main()
{
    int a[100],n,i,j,t;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=0;i<n-1;i++)
      for(j=0;j<n-i-1;j++)
          if(a[j] < a[j+1])
          {
              t = a[j];
              a[j] = a[j+1];
              a[j+1] = t;
          }
    for(i=0;i<n;i++)
          printf("%d ",a[i]);
}


#include <stdio.h>
#include <stdlib.h>
void bubble_sort(unsigned int a[], int n)
{
    int i ,j, temp;
    for(i = 0; i < n - 1; i++)
    {
          for(j = 0; j <n - 1 - i; j++)
         {
            if(a[j] < a[j+1])
            {
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
         }
    }
}
int main()
{
    int N = 0;
    int * score = NULL;
    scanf("%d", &N);
    score = (int *)malloc(sizeof(int)*N);
    for (int i = 0; i < N; i++)
    {
        scanf("%d", &score[i]);
    }
    bubble_sort(score, N);
    for (int i = 0; i < N; i++)
    {
        printf("%d ", score[i]);
    }
    printf("\n");
    return 0;
}

#include<stdio.h>
int main()
{
    int a[100];
    int n;
    int i,j,temp;
    int c,m,e;
    scanf("%d",&n);
    for(i = 0; i < n; i++)
    {
        scanf("%d%d%d",&c,&m,&e);
        a[i] = c + m + e;
    }
    for(i = 0; i < n - 1; i++)
    {
        for(j = i + 1; j < n; j++)
        {
            if(a[i] < a[j])
            {
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }
    for(i = 0; i < n; i++)
    {
        printf("%d\n",a[i]);
    }
    return 0;
}