数组未在函数内正确播放-气泡排序 我正在学习如何在C++中对数组进行冒泡排序。我已经完成了大部分工作,但现在在打印数组的函数中,数组中的最后一个数字被替换为一个垃圾号。 我怀疑这与函数中的for循环没有正确地“回放”数组有关,但我不确定 #include <iostream> using namespace std; void showArray(int sortMe[], int size); int main() { int sortMe[4] = {10, 2, 3, 1}; // Original Array int numElements = 4; int temp; // For swapping cout << "Before sort: "; showArray(sortMe, numElements); for (int i=numElements-1; i>0; i--) { // For loop1 for(int j=0; j<i; j++) { // Checks if the value on left is bigger than the right if(sortMe[j] > sortMe[j+1]) { // If bigger swap values temp = sortMe[j]; sortMe[j] = sortMe[j+1]; sortMe[j+1] = temp; } } } cout << "After sort: "; showArray(sortMe, numElements); } void showArray(int sortMe[], int size) { // Outputs array in format array = {num1, num2, etc.} int i; cout << "Array = {"; for (int i = 0; i < size - 1; i++) { cout << sortMe[i] << ", "; } cout << sortMe[i] << "}" << endl; }

数组未在函数内正确播放-气泡排序 我正在学习如何在C++中对数组进行冒泡排序。我已经完成了大部分工作,但现在在打印数组的函数中,数组中的最后一个数字被替换为一个垃圾号。 我怀疑这与函数中的for循环没有正确地“回放”数组有关,但我不确定 #include <iostream> using namespace std; void showArray(int sortMe[], int size); int main() { int sortMe[4] = {10, 2, 3, 1}; // Original Array int numElements = 4; int temp; // For swapping cout << "Before sort: "; showArray(sortMe, numElements); for (int i=numElements-1; i>0; i--) { // For loop1 for(int j=0; j<i; j++) { // Checks if the value on left is bigger than the right if(sortMe[j] > sortMe[j+1]) { // If bigger swap values temp = sortMe[j]; sortMe[j] = sortMe[j+1]; sortMe[j+1] = temp; } } } cout << "After sort: "; showArray(sortMe, numElements); } void showArray(int sortMe[], int size) { // Outputs array in format array = {num1, num2, etc.} int i; cout << "Array = {"; for (int i = 0; i < size - 1; i++) { cout << sortMe[i] << ", "; } cout << sortMe[i] << "}" << endl; },c++,arrays,C++,Arrays,在函数ShowArray中,您似乎期望 cout << sortMe[i] << "}" << endl; 内部的i是计数器,最终大小为1,但立即停止存在。 外i是你在中使用的 cout << sortMe[i] << "}" << endl; 而且它不是草签的。当您访问该值时,会得到未定义的行为。 这就是为什么会出现垃圾。在函数ShowArray中,您似乎期望在这里出现垃圾 cout << sortMe[i

在函数ShowArray中,您似乎期望

cout << sortMe[i] << "}" << endl;
内部的i是计数器,最终大小为1,但立即停止存在。 外i是你在中使用的

cout << sortMe[i] << "}" << endl;
而且它不是草签的。当您访问该值时,会得到未定义的行为。 这就是为什么会出现垃圾。

在函数ShowArray中,您似乎期望在这里出现垃圾

cout << sortMe[i] << "}" << endl;
内部的i是计数器,最终大小为1,但立即停止存在。 外i是你在中使用的

cout << sortMe[i] << "}" << endl;
而且它不是草签的。当您访问该值时,会得到未定义的行为。
这就是为什么会得到垃圾。

在showArray中,对于int i=0;i表示i=0;i表示i=0;i