这是我的代码:
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;
}
现在问题是,当我打印出阵列库存时,它似乎没有被排序
任何人都知道我做错了什么?
解决,谢谢
答案 0 :(得分:2)
您的功能会将0
分配给check
...
int check = 0;
...以下条件为check != 0
...
while(check != 0) {
// ...
}
......不会通过这个条件。
您的while() {}
循环将永远不会执行,因此它不会修改传入的数组。