Salut din nou. Am incercat sa implementez o cautare binara ( cred ca am inteles ” cu ce se mananca” ) dar nu inteleg de ce nu imi iese !!! Sunt la neintensiv,l-as fi intrebat pe prof,dar e neinteresat,la fel ca majoritatea colegilor…
Asta e sursa:
<i> </i>#include<iostream.h> int main() { int n,i,v[100],p,u,m,val,gasit; // p,u-primul,ultimul element din secventa care se face cautarea, m-elementul din mijlocul secventei cout<<"n="; cin>>n; for (i=1; i<=n; i++) // citesc vectorul in ordine crescatoare { cout<<"v["<<i<<"]="; cin>>v[i]; } // cout<<"val="; cin>>val; if (val>=v[1] && val<=v[n]) { p=1; u=n; gasit=0; do { m=(p+u)/2; if (val==v[m]) gasit=1; else if (val>v[m]) p=m+1; else u=m-1; } while (gasit==1 || p>u); if (gasit==0) cout<<"VALOARE INEXISTENTA!"; else cout<<"VALOAREA SE GASESTE PE POZITIA "<<p<<" !"; } else cout<<"VALOARE INEXISTENTA!"; }
Multumesc!
while(gasit==0||p>u) asta e prima greseala.
Si cand afisezi…printezi pozitia m nu p.
Multumesc din nou ,Blaugranas!! Am reusit-o si p-asta😀
N-ai ptr ce.