Buongiorno ,
e' da ieri che cerco di trovare l'errore in questo programma ma non riuscendo a giungere ad una soluzione. L'esercizio chiede di creare una funzione ricorsiva che invertire gli elementi in un array di interi. Io l'ho svolto in questo modo, ma a quanto pare sono presenti degli errori poiché non riesce a stamparmi il vettore invertito:
codice:
void visualizza(int *, int);
void inverti(int *, int);
void inverti(int *, int);
int main(){
int v[20], dim, i;
do{
printf("Quanti elementi vuoi inserire nel vettore? (massimo 20)\n");
scanf("%d", &dim);
if(dim<1 || dim>20){
printf("ERRORE nell'inserimento dei dati!\n");
}
}while(dim<1 || dim>20);
printf("Inserisci elementi:\n");
for(i=0; i<dim; i++){
scanf("%d", &v[i]);
}
printf("Il vettore inserito e' il suguente:\n");
visualizza(v, dim);
inverti(v, dim-1);
printf("\n\nIl vettore invertito e' il suguente:\n");
visualizza(v, dim);
system("pause");
return 0;
}
void visualizza(int *v, int dim){
int i;
for(i=0; i<dim; i++){
printf("%d\t", v[i]);
}
}
void scambia (int *a, int *b) {
int c;
c = *a;
*a = *b;
*b = c;
}
void inverti(int *p, int dim){
int i;
int j=p[i]+1;
int aus;
if(dim==1){
*p;
}
if (dim>1){
scambia(p, p+dim);
inverti(p+1, dim-1);
}
}