Ciao a tutti,
Sono nuovo nel forum e spero di non aver fatto un nuovo thread per nulla. Volevo chiedervi una cosa su un esercizio che ho trovato online. Sto facendo programmazione ma non sono molto bravo e il professore non contribuisce a spiegare bene le cose.Vi invio il programma:
#include<iostream.h>
typedef int vettore[100];
void leggi(int &d,vettore v);
void valore(int &val);
void trova(int &d,vettore v,vettore pos,int &val,int &n);
void visualizza(int &d,vettore v);
void visualizza1(int &val);
void visualizza2(int &val,vettore pos,int n);
void main()
{
int d,rip,val,n;
vettore v,pos;
do
{
cout<<"\n\n ***RICERCA NON ORDINATA*** by Enzo\n";
leggi(d,v);
do
{
valore(val);
visualizza(d,v);
trova(d,v,pos,val,n);
if(n==0) visualizza1(val);
if(n>0) visualizza2(val,pos,n);
cout<<"\n\n Voui cercare un'altro valore?";
cout<<"\n si=1 no=0 : ";
cin>>rip;
}
while(rip==1);
cout<<"\n\n Vuoi continuare ancora?";
cout<<"\n digita 1 per continuare,0 per uscire : ";
cin>>rip;
if(rip!=1)
{
cout<<"\n\n -----FINE PROGRAMMA-----";
}
}
while(rip==1);
}
void leggi(int &d,vettore v)
{
int i;
do
{
cout<<"\n Definisci la dimensione del vettore :";
cout<<"\n\n dim.(max 100)= ";
cin>>d;
if(d>100)
{
cout<<"\n\n ERROR! ";
}
}
while(d>100);
cout<<"\n\n Inserisci i valori nel vettore :";
for(i=0;i<d;i++)
{
cout<<"\n\n pos. "<<i<<" = ";
cin>>v;
}
}
void valore(int &val)
{
cout<<"\n\n Inserisci il valore da cercare : ";
cin>>val;
}
void trova(int &d,vettore v,vettore pos,int &val,int &n)
{
int i,j;
j=0;
for(i=0;i<d;i++)
{
if(v==val)
{
pos[j]=i;
j++;
}
}
n=j;
}
void visualizza(int &d,vettore v)
{
int i;
cout<<"\n\n VETTORE :";
for(i=0;i<d;i++)
{
cout<<"\n pos. "<<i<<" >>> "<<v;
}
}
void visualizza1(int &val)
{
cout<<"\n\n Il valore "<<val<<" non e' presente nel vettore.";
}
void visualizza2(int &val,vettore pos,int n)
{
int i;
cout<<"\n\n Il valore "<<val<<" e' presente";
cout<<"\n nel vettore per n = "<<n<<" volte.";
if(n>1)
{
cout<<"\n\n Il valore "<<val<<" e' presente,rispettivamente, ";
cout<<"\n nel vettore nelle posizioni :";
for(i=0;i<n;i++)
{
cout<<"\n V[ "<<pos<<" ]\n";
}
}
else
{
cout<<"\n\n Il valore "<<val<<" e' presente nel";
cout<<"\n vettore nella posizione V[ "<<pos[0]<<" ].";
}
}
Eccolo. Non capisco bene la funzione di &. Ho provato a toglierlo ma il programma non cambia di una virgola, tranne che se la tolgo in valore. In questo caso mi viene in output "Il valore 127 non è presente".
Come mai?
Grazie