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
Con la variabile "result"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); }
http://imageshack.us/a/img401/9141/variabileresult.jpg
Con la variabile "i"
http://imageshack.us/a/img811/6396/variabilei.jpg