提问者:小点点

按升序排列数组


我在学校的任务是创建一个程序,以升序排列数组的值。它几乎就在那里,但每当我输入“44 55 66 22 33 11 77 99 88 66”或它输出的任何数字

-858993460,11,22,33,44,55,66,66,77,88,或开头为负数

第一个数字到底怎么了?我是不是缺了什么?

我对C++很陌生,我不太明白这里的问题。如果有什么建议我可以用请告诉他们。

int num [10] = {};
int z;
cout << "please enter 10 numbers you want to sort: ";
cin >> num[0]>>num[1]>>num[2]>>num[3]>>num[4]>>num[5]>>num[6]>>num[7]>>num[8]>>num[9];

for (int l = 0; l < 10;l++)
        for (int a = 0; a < 10; a++) {
            if (num[a] > num[a + 1]) {
                z = num[a];
                num[a] = num[a + 1];
                num[a + 1] = z;
            }

        }
cout << "your number in ascending order is: ";
for (int a = 0; a < 10; a++) {
    cout << num[a] << ",";
}


system("pause");
return 0;

}


共1个答案

匿名用户

这里有一个错误:

for (int a = 0; a < 10; a++) {

a=9时,num[a+1]将超出范围。

行应为:

for (int a = 0; a < 9; a++) {