xirongzz 2021-11-10 22:59 采纳率: 100%
浏览 22
已结题

为什么选择排序法最后将a[min]和a[i]互换要放在if语句外才能实现?


#include<stdio.h>
int main()
{
    void sort(int a[],int n);
    int i,a[10];//定义数组营首地址和数组长度
    printf("please input the original array:");
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);//输入十个数
    sort(a,10);//调用函数sort对这十个数进行排序
    for(i=0;i<10;i++)
        printf("%5d",a[i]);//输出排序后的十个数
        printf("\n");
    return 0;
}

void sort(int a[],int n)//n是指数组长度
{
    int min,i,j,t;
    for(i=0;i<n-1;i++)//数组中的前n-1个数(除最后一个数外)都要进行一趟循环
    {
        min=i;//假设此趟循环中的最小值就是当前值i
        for(j=i+1;j<n;j++)//第i个数要和后面的每个值比较,与i比较的值记作j
            if(a[min]>a[j])//若后面的数j更小,则
                min=j;//记住此时j的下标
        t=a[i];a[i]=a[min];a[min]=t;//将a[i]和a[j]交换位置
    }
}                    

  • 写回答

2条回答 默认 最新

  • bekote 2021-11-10 23:04
    关注

    emmm也可以吧,只是在if里交换就是交换排序而不是选择排序了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月19日
  • 已采纳回答 11月11日
  • 创建了问题 11月10日

悬赏问题

  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令