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); } }

,
Rispondi quotando
