怎么修改这个c语言程序!

键盘输入20个学生的姓名和总分,按总分从大到小的顺序输出这20个学生的姓名和总分
输出的学生姓名和成绩怎么能对应上!!
img

img

建议如下:

//把 t 定义为结构体变量

  struct student t;

//然后排序的地方整体交换即可:

  t = a[j];
  a[j] = a[j+1];
  a[j+1] = t;

你的交换思路不对,应该是交换节点,不是只交换成绩,正确的做法应该如下:
struct student t;
//排序的if语句内部改为如下:
  t = a[j];
  a[j] = a[j+1];
  a[j+1] = t;