#include <stdio.h> typedef struct Mouse_Arr { int weight; //老鼠重量 char color[10]; //老鼠颜色 }Mouse_Arr; int cmp(const void *a,const void *b) { Mouse_Arr c = *(Mouse_Arr*)a; Mouse_Arr d = *(Mouse_Arr*)b; return d.weight - c.weight; //降序 } int main() { //按照重量输出帽子颜色,关键在于如何对应起来输出 int count,i; Mouse_Arr array[100]; scanf("%d",&count); //老鼠的数量 for(i=0;i<count;i++) { scanf("%d %s",&array[i].weight,array[i].color); } qsort(array, count, sizeof(array[0]), cmp); //对array重量降序排序 for(int i=0;i<count;i++) { printf("%s\n",array[i].color); //按照排序结果只输出颜色 } return 0; }