C语言程序作业!急!!!!

【问题描述】
对某班学生成绩排序。从键盘依次输入某班学生的姓名和成绩(一个班级人数最多不超过50人)并保存,然后分别按学生成绩由高到低顺序输出学生姓名和成绩,成绩相同时,则按输入次序排序。
【输入形式】
从键盘依次输入最多不超过50个学生的学生姓名和成绩:
第一行输入班级学生人数;
在单独行上输入空格隔开的学生姓名和成绩,其中学生成绩是整数。
【输出形式】
按学生成绩由高到低顺序输出学生姓名和成绩,每行输出一位学生的姓名和成绩,其中姓名(英文)占15位,成绩占5位,均按缺省方式对齐。成绩相同时按输入次序排序。
【输入样例】
4
aaa 50
bbb 70
ccc 65
ddd 90
【输出样例】

############ddd###90
############bbb###70
############ccc###65
############aaa###50

(注意:其中"#"号代表空格)

【样例说明】
输入了四个学生姓名和成绩,按成绩排序输出。

#include<stdio.h>
struct stu
{char name[20];
 int score;
}a[50],t;
int main()
{ int i,j,n;
  scanf("%d",&n);
  for(i=0;i<n;i++)
    scanf("%s%d",a[i].name,&a[i].score);
  for(i=0;i<n-1;i++)
    for(j=0;j<n-1-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("%15s%5d\n",a[i].name,a[i].score);
  return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-18
红楼梦-曹雪芹高鹗-免费电子书-在线阅读-网易云阅读