Salve a tutti ho un particolare errore(misà che non ho capito la ricorsione).
dato un array di interi creare un nuovo array di ordine inverso usando la ricorsione senza cicli.
posto il codice.Grazie in anticipo come sempre
FILE.C
codice:#include<stdio.h> #include<stdlib.h> #include<string.h> #include "ex7-es3.h" int* invertiArray(int* a, unsigned int size){ int cont=0; int cont2=1; int* nuovoarray; nuovoarray=(int*)malloc((size)*sizeof(int)); mia(nuovoarray,a,size,cont,cont2); return nuovoarray; } void mia(int* c,int* a,unsigned int size,int cont,int cont2){ int elem; elem=a[cont]; if(elem == a[size-1]){ c[0]=elem; } else{ cont++; mia(c,a,size,cont,cont2); c[cont2]=elem; cont2++; } }
FILE MAIN.C
Nel caso servissero sono pronti a scrivere anche il makefile e il file.hcodice:#include<stdio.h> #include<stdlib.h> #include<string.h> #include "ex7-es3.h" #define N 4 int main(){ int array[N]; int* p; for(int i=0;i<N;i++){ printf("inserisci l'elemento in pos[%d]: ",i); scanf("%d",&array[i]); } p=invertiArray(array,N); for(int q=0;q<N;q++){ printf("%d ",p[q]); } return 0; }
da input inserisco 1,2,3,4,mi restituisce 4,1,0,0


Rispondi quotando