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

C语言冒泡排序代码疑问:如何展示用户输入的原始数据?

解决C语言冒泡排序中无法展示原始输入数据的问题

要展示用户输入的原始数据,你需要做两个关键修改:记录实际输入的元素个数,以及在排序前打印原始数据(或复制一份原始数组保存)。以下是修正后的完整代码:

#include <stdio.h>

int main(void) {
    int array[100];
    int count = 0; // 记录实际输入的元素数量

    // 输入数据,记录实际个数
    for(int i = 0; i < 100; i++) {
        printf("Enter number %d: ", i + 1);
        scanf("%d", &array[i]);
        if(array[i] == 0) break;
        count++; // 每输入一个有效数字,计数加1
    }

    // 打印原始输入数据
    printf("原始输入数据:[");
    for(int i = 0; i < count; i++) {
        if(i == count - 1) {
            printf("%d", array[i]);
        } else {
            printf("%d, ", array[i]);
        }
    }
    printf("]\n");

    // 冒泡排序(使用实际元素个数count)
    for(int i = 0; i < count - 1; ++i) {
        int swapped = 0;
        for(int ctr = 0; ctr < count - i - 1; ++ctr) {
            if(array[ctr] > array[ctr + 1]) {
                int temp = array[ctr];
                array[ctr] = array[ctr + 1];
                array[ctr + 1] = temp;
                swapped = 1;
            }
        }
        if(swapped == 0) {
            break;
        }
    }

    // 打印排序后的数据
    printf("排序后数据:[");
    for(int i = 0; i < count; i++) {
        if(i == count - 1) {
            printf("%d", array[i]);
        } else {
            printf("%d, ", array[i]);
        }
    }
    printf("]\n");
    
    return 0;
}

关键修改说明:

  1. 记录实际输入个数:新增count变量,每次输入非0数字时递增,替代原来用sizeof(array)/sizeof(array[0])计算的错误数组总大小(原方法会得到100,而实际输入的元素远少于这个数)。
  2. 打印原始数据:在排序操作前,遍历输入的有效元素(用count控制范围),打印原始输入内容。
  3. 修正排序和输出的范围:所有循环的终止条件都改为count,避免处理数组中未输入的无效元素(原代码会打印大量未初始化的垃圾值或0)。

运行示例:

Enter number 1: 1
Enter number 2: 2
Enter number 3: 3
Enter number 4: 4
Enter number 5: 5
Enter number 6: 0
原始输入数据:[1, 2, 3, 4, 5]
排序后数据:[1, 2, 3, 4, 5]

如果需要保留原始数组用于后续对比,可额外创建备份数组,在输入完成后复制原始数据:

int original_array[100];
for(int i = 0; i < count; i++) {
    original_array[i] = array[i];
}

之后打印original_array即可展示原始数据,原数组用于排序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:30:22