PDA

Visualizza la versione completa : [C]Ricerca Uniforme


darth fener
20-05-2009, 14:02
Devo fare la ricerca di un valore in un array ordinato con la Ricerca Uniforme. Il programma non mi funziona perchŔ non riesce a trovare un valore che gli do dentro cm x nell'array che in realtÓ c'Ŕ



#include <stdio.h>
#include <conio.h>

#define dmax 100

int RicUnif(int*,int,int,int);

int main(){
int vett[dmax];
int x,i,dim,ris;
printf("Inserisci la dimensione del vettore: ");
scanf("%d",&dim);
for(i=0;i<dim;i++){
printf("Inserisci elemento %d: ",i+1);
scanf("%d",&vett[i]);
}
printf("Inserisci il valore che vuoi ricercare: ");
scanf("%d",&x);
ris=RicUnif(vett,x,0,dim-1);
if(ris){
printf("RIS: %d",ris);
}else printf("NON TROVATO\n");
getch();
return 0;
}


int RicUnif(int *V,int a,int in,int fin){
int x;
if(in>=fin || a<V[in] || V[fin]<a || V[in]==V[fin])
return in<=fin && in==V[in];
else{
x=in+(fin-in)*(in-V[in])/(V[fin]-V[in]);
if(V[x]<a)
in=x+1;
else
if(a<V[x])
fin=x-1;
else in=fin=x;
return RicUnif(V,a,in,fin);
}
}

unit1
20-05-2009, 16:53
Originariamente inviato da darth fener



return in<=fin && in==V[in];


:confused: Che cosa volevi fare? non ho mai visto una cosa del genere :master:

darth fener
20-05-2009, 17:11
Non Ŕ quello l'errore... Ritorna 0 o 1 a seconda della valutazione dell'espressione...
P.S. Credo di averlo trovato ed il return diventa
return inf<=sup && V[inf]==a

Loading