You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Bubble Sort排序数组输出异常,请求排查代码问题

冒泡排序代码问题分析

你的代码存在两个关键问题,导致输出不符合预期:

  • 打印时机与逻辑错误
    你在每轮外层循环结束后仅打印temp[i],外层循环执行n-1次(共5次),因此只能输出5个元素,缺少了最后一个值。更重要的是,冒泡排序每轮的作用是将当前未排序区间的最大值“移动”到末尾,此时temp[i]所在的位置还未完成最终排序,后续轮次仍可能对其进行交换,所以此时打印的是中间过程值,而非最终排序结果。

  • 多余头文件
    代码中引入了<string.h>但并未使用该头文件中的任何函数或宏,属于冗余代码,可直接删除。

修正后的代码如下:

#include <stdio.h>

// bubble sort algorithm
int main()
{
    int temp[] = {5,3,4,7,8,1};
    int n = 6;
    // 冒泡排序核心逻辑
    for (int i = 0; i < n - 1; i++)
    {
        for (int j = 0; j < n - i - 1; j++)
        {
            if (temp[j] > temp[j+1])
            {
                int swap = temp[j];
                temp[j] = temp[j+1];
                temp[j+1] = swap;
            }
        }
    }
    // 排序完成后遍历打印整个数组
    for (int i = 0; i < n; i++)
    {
        printf("%i", temp[i]);
    }
    return 0;
}

运行修正后的代码,会输出预期的134578。

内容的提问来源于stack exchange,提问作者JOHN KARANJA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 01:27:16