dite la verità vi stavate preoccupando di me perchè oggi non postavo nulla![]()
oggi è una stupidaggine molto grossa!
come da titolo questo programma molto stupido, dovrebbe caricare un vettore a[dim] e cercare un valore in questo caso "x", se viene trovato deve restituirmi 1 altrimenti 0. Il mio problema è che mi da sempre 0. L'unica cosa che mi viene in mente è che il valore x per un qualche motivo non viene passato alla funzione "ricercaRicorsiva". Voi che mi dite?codice:#include <stdio.h> #define dim 100 void leggivet (int a[], int n); int ricercaRicorsiva (int a[], int inf, int sup, int x); int main(){ int a[dim], x, n, inf, sup; leggivet(a, n); printf("numero da ricercare = "); scanf("%d", &x); printf("%d\n", ricercaRicorsiva (a, inf, sup, x)); system ("pause"); return 0; } void leggivet(int a[], int n){ int i; printf("inserire dimensioni vettore (max %d) = ", dim); scanf("%d", &n); for(i=0;i<n;i++){ printf("a[%d]= ", i); scanf("%d", &a[i]); } }//fine leggivet int ricercaRicorsiva (int a[], int inf, int sup, int x){ int med; int trovato; if(inf>sup) trovato=0; else { med=(inf+sup)/2; if(x==a[med]) trovato=1; if (x>a[med]) trovato = ricercaRicorsiva(a, med+1, sup, x); else trovato = ricercaRicorsiva(a, inf, med-1, x); } return trovato; }

Rispondi quotando