你能告诉我这有什么问题吗?为什么交换功能不起作用?
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]);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我不使用交换功能并在“气泡”功能中手动进行交换,它就可以工作。但是,如果我使用交换它不起作用,即使它完全相同。我在这里做错了什么?
int temp = a[b];
a[b] = a[c];
a[b] = temp;
Run Code Online (Sandbox Code Playgroud)
简单的错字,您分配给a[b]两次。第二个应该是a[c]