Premetto che sono un principiante.
la mia domanda e' se inserisco il valore della funzione "ricerca",nella variabile "i"
il valore rimane l'ultimo che e' stato impostato con for.
Invece se il valore della funzione lo inserisco nella variabile "result" il programma funziona bene (cioe' il numero 105 non viene trovato).
Non riesco a comprendere perche non distrugge il valore precedente se uso la variabile i.
questo sotto e' il programma.
Grazie in anticipo a chiunque rispondera
codice:
#include <stdio.h>
#define SIZE 13
int ricerca(int vett[],int chiave){
int low=0,high=SIZE,key;
while(low<=high){
key=(high+low)/2;
if (vett[key]==chiave)
return key;
else
if (vett[key]>chiave)
high=key-1;
else
low=key+1;
}
return -1;
}
main(){
int i,n=105,vett[SIZE],result;
for(i=0;i<=SIZE-1;i++)
vett[i]=2*i;
if (result=ricerca(vett,n)!=-1)
printf("il numero %d e' stato trovato\n",n);
else
printf("il numero %d non e' stato trovato!!!",n);
}
Con la variabile "result"
http://imageshack.us/a/img401/9141/variabileresult.jpg
Con la variabile "i"
http://imageshack.us/a/img811/6396/variabilei.jpg