你好!对不起,代码不能更短,每一行都可以
对于输出至关重要。这是冒泡的代码。 QUELL是FILE IM
阅读。该文件包含3390行数字。 ///这里是问题:
当我选择排序数组时,第一行始终保持不变,
就像它从未改变过。我怎样才能解决这个问题?
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;
最佳答案
内循环迭代x>y
的时间。这将错过您希望x等于y的最后一次迭代。长话短说-用>
替换>=
,您应该可以:
for(int y=0; y < 3390; ++y) {
for(int x=3388; x >= y; --x) {
// Here -----------^
关于c - Bubblesort时,Array [0]不变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38164806/