交换数组函数的两个元素

你能告诉我这有什么问题吗? 为什么交换function不起作用?

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;ia[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]); } } 

如果我不使用交换function并在“气泡”function中手动进行交换,则可以正常工作。 但是,如果我使用交换它不起作用,即使它完全相同。 我在这做错了什么?

  int temp = a[b]; a[b] = a[c]; a[b] = temp; 

简单的拼写错误,你分配给a[b]两次。 第二个应该是a[c]