所以我對這個程序有點麻煩。代碼的要點是將名爲grades.txt
的數字列表輸入到大小爲28的數組中,然後冒泡排序並輸出所述數組。C++ Bubble Sorting一個輸出不同數字的數組
我已經研究過關於此的其他線程,並試圖實現他們的解決方案,很少或沒有成功。
我在氣泡排序之前和之後輸出數組,並且它完美地列出了數組。嘗試輸出排序後的數組時遇到問題。它不是按順序列出數字,而是給出數字,例如0,0,0,0,0,0,0,0,0,1,8,66,2292876,3012834等等。
我真的很想讓這個程序工作,任何和所有的幫助將不勝感激。
P.S.我打算將這些代碼編寫爲單獨的函數,並添加其他內容。這只是一個初步的步驟,我想要解決這個問題,所以我不必處理幾十行代碼來進行調試。
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
#define SIZE 28
int main()
{
int array[SIZE], X;
ifstream data;
data.open("grades.txt");
data >> array[X];
while(! data.eof())
{
data >> array[X];
cout << array[X] << endl;
}
data.close();
cout << "\n\n\nContinue!\n\n\n";
cin.get();
int i, j, tmp;
for (i = 0; i < SIZE - 1; ++i)
{
for (j = 0; j < SIZE - i - 1; ++j)
{
if (array[j] > array[j + 1])
{
tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
}
}
}
for(int C = 0; C < SIZE; C++)
cout << array[C] << endl;
return 0;
}
您需要在while循環中給'X'一個值並增加'X'。我不確定程序如何編寫它應該首先打印未排序的數組。如果我沒有記錯,'int x'不是默認初始化的。 'int X = 0'並且在while循環'++ X'的每次迭代開始時。由於在進入循環之前有一個'data >>數組[X]'。 – Ares 2014-12-05 03:36:44
@Zaphod工作得很好。非常感謝! – DeltaWolf 2014-12-05 03:43:52