#include <stdio.h>
#define N 5
void Swap(int *a,int *b){//交换
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void SimpleSS(int *a,int n){//简单选择排序
int i,j,min,pos;
for(i=0;i<n-1;i++){
min=a[i];
pos=i;
for(j=i+1;j<n;j++){
if(a[j]<min){
min=a[j];
pos=j;
}
Swap(&a[i],&a[pos]);
}
}
}
int main(){
int i,a[N];
printf("请输入5个数字:");
for(i=0;i<N;i++){
scanf("%d",&a[i]);
}
SimpleSS(a,N);
printf("\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
简单选择排序实现,为什么有时不能排出来,例如99 55 66 11 22
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- CSDN专家-深度学习进阶 2021-05-16 11:18关注
#include <stdio.h> #define N 5 void Swap(int *a,int *b){//交换 int temp; temp = *a; *a = *b; *b = temp; } void SimpleSS(int *a,int n){//简单选择排序 int i,j,min,pos; for(i=0;i<n;i++){ min=a[i]; pos=i; for(j=i+1;j<n;j++){ if(a[j]<min){ min=a[j]; pos=j; Swap(&a[i],&a[pos]); } } } } int main(){ int i,a[N]; printf("请输入5个数字:"); for(i=0;i<N;i++){ scanf("%d",&a[i]); } SimpleSS(a,N); printf("\n"); for(i=0;i<N;i++) printf("%d ",a[i]); printf("\n"); return 0; }
如果对你有帮助请点下采纳,谢谢!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 软件测试决策法疑问求解答
- ¥15 win11 23H2删除推荐的项目,支持注册表等
- ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
- ¥15 qt6.6.3 基于百度云的语音识别 不会改
- ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
- ¥15 神经网络怎么把隐含层变量融合到损失函数中?
- ¥15 lingo18勾选global solver求解使用的算法
- ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
- ¥20 测距传感器数据手册i2c
- ¥15 RPA正常跑,cmd输入cookies跑不出来