所以我对这个程序有点麻烦。代码的要点是将名为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