fearless_work 2022-12-09 19:49 采纳率: 75%
浏览 17

c语言的选择排序,我想使代码最多交换n-1次

选择排序,我想使代码最多交换n-1次,不知道为什么无法实现正确的交换

img

img

#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    int a[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }
    int t;
    for (int i = 0; i < n-1; i++) {
        int max = i;
        for (int j = i + 1; j < n; j++) {
            if (a[j] > a[i]) {
                max = j;
            }
        }
        if (max != i) {
            t = a[max];
            a[max] = a[i];
            a[i] = t;
        }
    }
    for (int i = 0; i < n; i++) {
        printf("%d", a[i]);
        if(i!=n-1) printf(" ");
    }

}

  • 写回答

1条回答 默认 最新

  • Huazie 全栈领域优质创作者 2022-12-09 20:19
    关注

    这里要改一下:

    img


    如有帮助,欢迎采纳哈!

    评论

报告相同问题?

问题事件

  • 创建了问题 12月9日

悬赏问题

  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 TeleScan不能修改bar
  • ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息
  • ¥15 Spring Boot离线人脸识别
  • ¥15 使用Ant Design Pro vue的时候,使用环境变量的时候,构建报错是什么原因
  • ¥15 NRF24L01能发送但是不能接收