-1

这是我的代码:

void bubbleSortInventory(article inventory[], int noOfArticles){
    int newn;

    int check = 0;

    while(check != 0){
        newn = 0;
        for(int i = 1; i <= noOfArticles-1;i++){
            if(inventory[i-1].id>inventory[i].id){
                swap(&inventory[i-1].id,&inventory[i].id);
                newn = i;
            }
        }//end for-loop
        check = newn;
    }
}

和交换功能:

void swap(int *number1, int *number2){
    int temporaryHolder;

    temporaryHolder = *number1;
    *number1 = *number2;
    *number2 = temporaryHolder;
}

现在问题来了,当我打印出数组库存时,它似乎没有被排序

有谁知道我做错了什么?

已解决,谢谢

4

1 回答 1

2

您的功能分配0check...

int check = 0;

...并且以下条件是check != 0...

while(check != 0) {
    // ...
}

...永远不会通过条件。

你的while() {}循环永远不会执行,所以它永远不会修改传入的数组。

于 2013-10-23T23:40:40.477 回答