【发布时间】:2022-11-11 01:32:49
【问题描述】:
我是 C++ 新手,我一直在做气泡排序,但是当我想在终端中显示数字时,前导数字是个问题。对不起,我的英语不好顺便说一句。
我在哪里做错了?
这是代码:
#include <iostream>
void printArray(int *myArr, int lenght) {
for (int i = 0; i < lenght; ++i) {
std::cout << myArr[i] << ", ";
}
}
int bubbleSort(int *myArr, int lenght) {
for (int i = 0; i < lenght; ++i) {
for (int j = 0; j < lenght-1; ++j) {
if (myArr[j] > myArr[j+1]) {
int temp = myArr[j];
myArr[j] = myArr[j+1];
myArr[j+1] = temp;
}
}
}
return *myArr;
}
int main() {
int myArr[] = {10,14,13,19,15,12,16,18,17,11};
int newArr = bubbleSort(myArr, 8);
printArray(&newArr, 8);
return 0;
}
这就是我得到的:
10, 10, 12, 13, 14, 15, 16, 18, 没有19和双10
有没有更简单的方法来获取函数中数组的长度?谢谢...
【问题讨论】:
-
您可以使用
std::array或std::vector来跟踪它们的实际长度。 -
您的数组有 10 个元素但您将长度设置为 8 是故意的吗?
标签: c++ arrays sorting printing