我正在使用for
在C中创建一个冒泡排序程序,我试图当一个数字比这个数组中的另一个更高时,它们会改变位置。
示例:
用户输入输入:
Input : 5,6,10,9,2
输出将是第一个位置的最高数字,其他序列在一个序列中,如:
Output : 10,9,6,5,2
我的代码:
int array[5],i,changed = false;
for(i = 0; i < 5; i++) {
if(array[i] > array[i+1]) {
swap(array[i],array[i+1]); //Function that exchanges place, but I don't know how to do that
changed = true;
}
}
我该怎么做?
答案 0 :(得分:1)
C中的参数函数都是通过复制传递的,因此您需要使用指针:
void swap(int *a, int *b) {
int save_a = *a;
*a = *b;
*b = save_a;
}
然后你可以像这样使用这个函数:
swap(&array[i], &array[i + 1]);
或:
swap(array + i, array + i + 1);