c++冒泡排序的测试数据输入之后为何输出时前n-2个数据都变成了0?

发布于 2022-09-04 05:44:31 字数 920 浏览 20 评论 0

感觉我的代码没什么毛病呀。
为什么输出都变成00000了

#include<iostream>
using namespace std;
int main(){
    int arr[10];
    //输入测试数据 
    for(int x = 0;x<10;x++){
        cin>>arr[x];
    }
    cout<<"输出测试数据:"<<endl;
    //输出测试数据 
        for(int x = 0;x<10;x++){
        cout<<arr[x]<<" ";
    }
    int a;
    cout<<endl;
    //冒泡排序 
    for(int i = 1;i<=9;i++){
        for(int j = 0;j<=9-i;j++){
            if(arr[j]>arr[j+1]){
                 a = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = arr[j];
            }
        }
    }
    //输出排序后的测试数据
    cout<<"输出排序后的测试数据:"<<endl; 
    for(int x = 0;x<10;x++){
        cout<<arr[x]<<" ";
    }
    
    return 0;
}

图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

巡山小妖精 2022-09-11 05:44:31

if里面 进行数据交换的时候,写的好像有问题吧

陌伤ぢ 2022-09-11 05:44:31
    if(arr[j]>arr[j+1]){
         a = arr[j];
        arr[j] = arr[j+1];
        arr[j+1] = arr[j];
    }

看看这段代码,预先保存的 a 用到哪去了?这里是笔误还是真没弄懂如何交换?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文