PDA

View Full Version : [c++]ricerca binaria


drunkenpenguin
17-08-2010, 17:12
Ho scritto un programmino per fare una ricerca binaria...è rozzissimo ma secondo i miei calcoli dovrebbe funzionare...il problema è che non lo fa'...

il codice è il seguente:
#include <iostream>
#define MAX 10
using namespace std;

void leggivettore(int vettore[], int dimensione);
int ricercabinaria(int vettore[], int dimensione);

int main(){
int numeri[MAX];
cout<<"ricerca binaria"<<endl;
leggivettore(numeri, MAX);
return 0;
}



void leggivettore(int vettore[], int dimensione){

cout<<"inserire il vettore"<<endl;
for(int i=0;i<dimensione;i++){
cin>>vettore[i];
}
}



int ricercabinaria(int vettore[], int dimensione){
int I=0;
int F=10;
int x=0;
cout<<"inserire il numero da ricercare:"<<endl;
cin>>x;

do{
if(x>vettore[F/2]) I=F/2;
else if (x<vettore[F/2]) F=F/2;
else if (x==vettore[F/2]){
cout<<"la posizione del numero è:["<<F/2<<"]"<<endl;
return 0;
}
}while((x!=vettore[F/2])||(F/2=0));
cout<<"il numero nun ce sta'"<<endl;
}


e l'errore, che si trova nella terzultima riga è: ricerca.cpp:41: error: lvalue required as left operand of assignment

qualcuno saprebbe spiegarmi cosa ho sbagliato e come sistemarlo?:(

ah, dimenticavo, il vettore è ordinato.

tuccio`
17-08-2010, 18:22
}while((x!=vettore[F/2])||(F/2=0));

forse == 0 o != 0? :E

quando dice di guardare alla linea 41 il più delle volte è bene dare un'occhiata alla linea 41 ^_^