Ricerca sequenziale fallita

di il
1 risposte

Ricerca sequenziale fallita

main
#include <cstdlib>
#include <iostream>
#include "header.h"

using namespace std;

int main(int argc, char *argv[])
{ vettore v;
int n, info, posiz;
leggiVettore( v, n);
inserisciInfo( v, n, info);
ricercaSeq( v, n, info);
presenzaElemento( v, info, posiz);
system("PAUSE");
return EXIT_SUCCESS;
}
header.h
typedef int vettore[50];

void leggiVettore(vettore v, int &n);
void inserisciInfo(vettore v, int n, int &info);
void ricercaSeq(vettore v, int n, int info);
void presenzaElemento(vettore v, int info, int posiz);
header.cpp
#include <cstdlib>
#include <iostream>

using namespace std;

typedef int vettore[50];

void leggiVettore(vettore v, int &n){
cout<<"Inserisci riempimento vettore\n";
cin>>n;
for(int i=0; i<n; i++){
cout<<"inserisci valore nella posizione v["<<i<<"]: ";
cin>>v;
}
}
void inserisciInfo(vettore v, int n, int &info){
cout<<"Inserisci valore da cercare\n";
cin>>info;
}
void ricercaSeq(vettore v, int n, int info){
register int i=0;
int posiz=-1;
int trovato=0;
while ((!trovato) && i<n){
if(v==info){
trovato=1;
posiz=i;
}
i++;
}
}
void presenzaElemento(vettore v, int info, int posiz){
if (posiz!=-1)cout<<"L'elemento "<<info<<" e' presente in posizione "<<posiz<<endl;
else cout<<"L'elemento "<<info<<" non e' presente nel vettore\n";
}


non riesco a capire l'errore

1 Risposte

  • Re: Ricerca sequenziale fallita

    L'errore è nella funzione ricercaSeq. Qui la variabile posiz è locale e viene distrutta in uscita.
    Puoi o passare il riferimento da main oppure usare return (posiz);

    Saluti,
    Max
Devi accedere o registrarti per scrivere nel forum
1 risposte