我遇到了冒泡排序問題。我按降序對8個數字進行排序;但是,在打印到屏幕時,第一個數字不在數組中。這就像是一個出界的錯誤,或打印一些內存的內容。任何幫助讚賞。冒泡排序功能實現不起作用
#include <iostream>
using namespace std;
void sortArray(int nums[]);
void printArray(int nums[]);
int main()
{
int nums[8] = {3, 6, -19, 5, 5, 0, -2, 99};
sortArray(nums);
printArray(nums);
system("pause");
return 0;
}
void sortArray(int nums[])
{
bool swap;
int temp;
do
{
swap = false;
for(int i = 0; i < 8; i++)
{
if(nums[i] < nums[i+1])
{
temp = nums[i];
nums[i] = nums[i+1];
nums[i+1] = temp;
swap = true;
}
}
}while(swap);
}
void printArray(int nums[])
{
for(int i = 0; i < 8; i++)
{
cout << nums[i] << ", ";
}
cout << endl;
}
這是功課嗎? –