Parece haber varios errores en el código. Te recomiendo que dejes el log arrojado por el compilador.
Por otro lado, en la función
intercambia deduzco que quieres poner el valor de a en b, y de b en a. Al menos en C, para utilizar parámetros por referencia debes usar punteros, y para definirlos se utiliza el asterisco (*). Por lo que:
Código C++:
Ver originalvoid intercambia(int *a, int *b){
int *aux;
aux=a; a=b; b=aux;
}
Y para llamar a la función: