已知学生的记录由学号和成绩组成。N名学生的数据已在主函数中放入结构体中输出S中。请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前
2条回答 默认 最新
fuill 2022-01-13 23:47关注结构体排序比较结构体元素交换结构体

#include<stdio.h> struct stu { int num; int score; }; void fun(struct stu t[],int n) { int j,k; for(k=0; k<n-1; k++) { for(j=0; j<n-k-1; j++) { if(t[j].score<t[j+1].score) { struct stu tem=t[j]; t[j]=t[j+1]; t[j+1]=tem; } } } } int main() { struct stu t[5]= {1,56,2,66,3,45,4,68,5,60}; int j; for(j=0; j<5; j++) { printf("学号:%d 分数:%d \n",t[j].num,t[j].score); } fun(t,5); printf("排序后\n"); for(j=0; j<5; j++) { printf("学号:%d 分数:%d \n",t[j].num,t[j].score); } return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 2