1条回答 默认 最新
- 小6的跟班 2022-12-05 12:14关注
是中间的排序代码有问题,if(stu[j].ly>stu[j].ly)应该改为if(stu[j].ly>stu[j+1].ly),我简单的修改了一下。
#include <stdio.h> #define N 10 struct student { int ID; int ly; }; int main() { struct student stu[N]={{1,52},{2,92},{3,14},{4,48},{5,95},{6,0},{7,25},{8,74},{9,36},{10,59}}; struct student t; int i,j; for(i=0;i<N-1;i++) { for(j=0;j<N-i-1;j++) { if(stu[j].ly>stu[j+1].ly) { t=stu[j]; stu[j]=stu[j+1]; stu[j+1]=t; } } } for(i=0;i<N;i++) { printf("学号:%d 成绩:%d\n",stu[i].ID, stu[i].ly); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 陆空双模式无人机飞控设置
- ¥15 sentaurus lithography
- ¥100 求抖音ck号 或者提ck教程
- ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)
- ¥20 web页面如何打开Outlook 365的全球离线通讯簿功能
- ¥15 io.jsonwebtoken.security.Keys
- ¥15 急,ubuntu安装后no caching mode page found等
- ¥15 联想交换机NE2580O/NE1064TO安装SONIC
- ¥15 防火墙的混合模式配置
- ¥15 Ubuntu不小心注销了要怎么恢复啊