在主函数里已给定成绩,学号,姓名,三者从左至右一一对应;写一个排序函数,按成绩从高到低排序,来实现信息记录的调整,保证学号,姓名和成绩对应得上
5条回答 默认 最新
- 语言-逆行者 2022-11-28 14:28关注
马上
#include<stdio.h> int main(){ int score[10]={65,88,90,98,78,86,77,90,95,18}; int num[10]={1001,1002,1003,1004,1005,1006,1007,1008,1009,1010}; char Name[10][30]={"Zhangsan","Zhaopeng","Lili","Lule","Xiaoxiao","Zhanle","Keke","Liulu","Changchang","Sunhe"}; int scoreindex[10]; for(int i=0;i<10;i++){ score[i]=score[i]*100+i; } //冒泡排序 for (int i = 0; i < 9; i++)//i<9进行解释① { for (int j = 0; j < 9-i; j++)//i<9-i进行解释② { if (score[j] > score[j + 1])//满足条件进行交换 { int temp = score[j]; score[j] = score[j + 1]; score[j + 1] = temp; } } } printf("学号 姓名 成绩:\n"); for(int i=9;i>=0;i--){ int index; index=score[i]%100; printf("%d%15s %d\n",num[index],Name[index],score[i]/100); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用