你好!对不起,代码不能更短,每一行都可以 输出的问题。这是一个bubbleort代码。 QUELL是文件im 读。该文件有3390行数字。 /// Herer是问题所在: 当我输入已排序的数组时,第一行始终保持不变, 喜欢它永远不会改变。我该如何解决这个问题?
int sorta[3390];
for(int i=0; i < 3390; ++i){
fgets(string, MAXZEILE, QUELL);
sscanf(string, "%d", &a);
sorta[i]=a;
}
for(int y=0; y < 3390; ++y){
for(int x=3388; x>y; --x){
if (sorta[x] >= sorta[x+1]){
int tmp = sorta[x];
sorta[x] = sorta[x+1];
sorta[x+1] = tmp;
答案 0 :(得分:0)
内循环只要x>y
迭代。这将错过您希望x等于y的最后一次迭代。长话短说 - 用>
替换>=
,你应该没问题:
for(int y=0; y < 3390; ++y) {
for(int x=3388; x >= y; --x) {
// Here -----------^