【发布时间】:2014-12-05 03:32:29
【问题描述】:
所以我在使用这个程序时遇到了一些问题。代码的重点是将一个名为grades.txt的数字列表输入到一个大小为28的数组中,然后冒泡排序并输出该数组。
我已经查看了有关此问题的其他线程,并尝试实施他们的解决方案,但几乎没有成功。
我在冒泡排序前后输出了数组,它完美地列出了数组。尝试输出排序数组时出现问题。它没有按顺序列出数字,而是给了我诸如 0,0,0,0,0,0,0,0,0,1,8,66,2292876,3012834 等数字。
我真的很想让这个程序运行起来,任何和所有的帮助都将不胜感激。
附:我计划将此代码编写为单独的函数以及添加其他内容。这只是一个初步步骤,我想解决这个问题,这样我就不必再处理几十行代码来调试了。
#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;
}
【问题讨论】:
-
你需要给
X一个值并在你的while循环中增加X。我不确定您编写的程序是否应该首先打印出未排序的数组。如果我没记错的话,int X不是默认初始化的。int X = 0和 while 循环++X的每次迭代开始时。因为在进入循环之前有一个data >> array[X]。 -
@Zaphod 效果很好。非常感谢!
标签: c++ arrays sorting bubble-sort