你能告诉我这有什么问题吗?为什么交换功能不起作用?
void swap(int a[], int b, int c) {
int temp = a[b];
a[b] = a[c];
a[b] = temp;
}
void bubble1 (int a[], int N){
int i;
for(i=0;i<N-1;i++){
if(a[i]>a[i+1]){
swap(a,i,i+1);
}
}
}
void main() {
int N = 11;
int a[12]={5,3,12,4,25,10,14,35,2,8,13};
bubble1 (a,N);
int i;
for(i = 0; i < N; i++){
printf("%d\n",a[i]);
}
}
如果我不使用交换功能并在&#34; bubble&#34;中手动进行交换。它起作用。但是,如果我使用交换,它就不起作用,即使它完全相同。我在这里做错了什么?
答案 0 :(得分:3)
int temp = a[b];
a[b] = a[c];
a[b] = temp;
简单的拼写错误,您要分配给a[b]
两次。第二个应该是a[c]