使用函数指向数组

时间:2013-10-23 23:32:59

标签: c arrays swap

这是我的代码:

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;
}

现在问题是,当我打印出阵列库存时,它似乎没有被排序

任何人都知道我做错了什么?

解决,谢谢

1 个答案:

答案 0 :(得分:2)

您的功能会将0分配给check ...

int check = 0;

...以下条件为check != 0 ...

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

......不会通过这个条件。

您的while() {}循环将永远不会执行,因此它不会修改传入的数组。