【发布时间】:2015-03-26 18:56:27
【问题描述】:
我需要将整数数组和数组中的值的数量传递给sort(array[], count) 函数。它应该返回冒泡排序进行的交换次数,而不是比较次数。此代码编译并运行,但我没有得到正确的输出。有时,尽管while(i < counter),我仍会不断输入值。
#include <stdio.h>
int sort(int array[], int count);
int main(void){
int numArray[100];
int counter, value;
printf("Enter array length \n");
scanf("%d", &counter);
int i = 0;
while(i < counter){
scanf("%d", &numArray[i]);
i++;
}
i = 0;
while(i < counter){
sort(numArray, counter);
i++;
}
i = 0;
while(i < counter){
printf("Values: %d\n", numArray[i]);
i++;
}
return 0;
}
int sort(int array[], int count){
int i, j, temp;
int swaps = 0;
for(i = 0; i < count-1; ++i){
for(j=0; j<count-1-i; ++j){
if(array[j] > array[j+1]){
temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
swaps++;
}
}
}
return swaps;
}
【问题讨论】:
-
sort没有返回任何东西,sort(numArray, counter);也没有得到任何东西。 -
我需要弄清楚如何返回掉期次数
-
sort需要保存交换次数,然后return结束。 -
我会
return array;吗? -
在达到预期目标之前,您不应该增量编辑问题中的代码,因为未来的读者将无法识别原始问题。这似乎是一个没有任何问题的问题