#include<stdio.h>
int main()
{printf("请输入10个不同的整数\n");
int a[10],i,j,k,m;
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
{k=i;
for(j=i+1;j<9;j++)
if(a[k]<a[j]) k=j;
if(k!=i) {m=a[i];a[i]=a[j];a[j]=m;
}
}
for(i=0;i<=9;i++)
printf("%d\t",a[i]);
return 0;
}
选择法将这10个数按从大到小的顺序排序
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- Neal·Lee 2021-04-21 18:14关注
第十一行修改为:if(k!=i) {m=a[i];a[i]=a[k];a[k]=m;}
是a[i]和a[k]的值交换,不是和a[j]的值交换
选择法是通过找到最大值和第 i 位数交换
你这个代码到交换值的时候,j的值始终为9
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
- ¥15 win10权限管理,限制普通用户使用删除功能
- ¥15 minnio内存占用过大,内存没被回收(Windows环境)
- ¥65 抖音咸鱼付款链接转码支付宝
- ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
- ¥15 blast算法(相关搜索:数据库)
- ¥15 请问有人会紧聚焦相关的matlab知识嘛?
- ¥15 网络通信安全解决方案
- ¥50 yalmip+Gurobi
- ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面