Salve raga, ho un problema con questa traccia che mi è stata assegnata in vista di un esame, ahimè, molto prossimo:
Il professore ha richiesto di creare un programma che ricerchi se un valore è presente all'interno di un vettore , e di indicarne la posizione se questo è presente.
Partendo dal fatto che è ambigua la traccia, perchè non riesco a capire se mi chiede di un vettore generico, o di uno inserito comunque prima dall'utente, ma prendiamo per vera la seconda opzione.
Il problema sorge perchè mi chiede di fare questo attraverso una funzione ( se dovessi farlo senza funzione lo saprei fare , cioè l'ho proprio già scritto un programma che lo fa e non mi riporta alcun errore, funzionando come deve).
Ora, il codice che ho scritto io è il seguente :
// Cercare valore in vettore
#include<iostream>
using namespace std;
#define N 6
typedef int vettore[N];
vettore vett;
int trovavett(vettore,int a){
int i , esci,posizione,input;
cout<<"Quale valore vuoi cercare? ";
cin>> input;
while(i<N && esci==0){
if (vett[i]=input)
esci==1;
else
cout<<" Nessun valore corrispondente "<<endl;
}
posizione =i;
return posizione;
}
int main(){
int posizione,a;
for(int i=0;i<N;i++){
cout<<"Inserire l'elemento del vettore : ";
cin>> vett[i];
}
posizione=trovavett(vett,a);
cout<<"La posizione del valore cercato e': "<<posizione<<endl;
system("PAUSE");
return 0;
}
Qualunque sia la posizione dell'elemento, il programma mi riporta sempre 0 come posizione. Ciò è dovuto al fatto che non ho, evidentemente, ben collegato il valore della posizione uscente dal sottoprogramma con quello del main. Ho già provato a non usare
while , ma agendo anche con
for, il risultato è lo stesso; anche cambiando la posizione delle varie parendesi {} , o ottengo come risultato che mi fa inserire un unico valore del vettore chiudendo il ciclo anticipatamente , o mi da sempre e comunque che il valore inserito non è presente .
Davvero non riesco a capire dove sia l'errore , potete aiutarmi in qualche modo?