-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

0あなたの関数はcheck...に割り当てます

int check = 0;

...そして、次の条件はcheck != 0...

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

...これは決して条件を通過しません。

while() {}ループは実行されないため、渡された配列が変更されることはありません。

于 2013-10-23T23:40:40.477 に答える