dite la verità vi stavate preoccupando di me perchè oggi non postavo nulla
oggi è una stupidaggine molto grossa!
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;
}
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?