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.
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.