Get_gift 2024-10-27 00:01 采纳率: 100%
浏览 16
已结题

C语言(相关搜索:c语言|冒泡排序)

尝试写冒泡排序,最后运行结果只是交换了45,求看看哪里有问题。

img


#include<stdio.h>

int main()
{    
    int i, j;
    int arr[5] = { 1,5,4,3,2 };
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 4-j; j++)
        {
           if (arr[j] > arr[j+1])
           {
                int t = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = t;
            }
        }
    for (i = 0; i < 5; i++)
    printf("%d", arr[i]);
    }    
}
  • 写回答

2条回答 默认 最新

  • Roc-xb 领域专家: 后端开发技术领域 2024-10-27 00:15
    关注
    
    #include <stdio.h>
    
    int main()
    {
        int i, j;
        int arr[5] = { 1, 5, 4, 3, 2 };
        // 外层循环控制排序的轮数,总共需要4轮
        for (i = 0; i < 4; i++)
        {
            // 内层循环控制每轮的比较次数
            for (j = 0; j < 4 - i; j++) // 注意这里的条件是j < 4 - i
            {
                if (arr[j] > arr[j + 1])
                {
                    int t = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = t;
                }
            }
        }
        // 打印排序后的数组
        for (i = 0; i < 5; i++)
        {
            printf("%d ", arr[i]); // 添加空格以便区分数组元素
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

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