¿Puedes ayudarme diciéndome qué está mal con esto? ¿Por qué no funciona la función de intercambio?
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]); } }Si no uso la función de intercambio y hago el intercambio manualmente en la función de "burbuja", funciona. Sin embargo, si uso el intercambio, no funciona, aunque es exactamente lo mismo. ¿Qué estoy haciendo mal aquí?
int temp = a[b]; a[b] = a[c]; a[b] = temp; Error tipográfico simple, está asignando a a[b] dos veces. El segundo debe ser a[c]