enrico.pix
16-06-2010, 13:10
sto perdendo tempo. sto facendo una cosa inutile, ma ormai mi sono impuntato.
teoricamente ha senso quello che sto scrivendo.
crea un vettore "posizioni" di "volte" interi. fai un ciclo j, dall'elemento 0 all'ultimo elemento di questo vettore. per ognuno di questi elementi fai la ricerca. se la ricerca da esito positivo assegna all'elemento j del vettore "posizioni" il valore i del ciclo della ricerca.
però non funge come dovrebbe. mi indica solo l'ultima posizione in cui è stato avvistato l'elemento.... dategli un'occhiata vi prego
#include <cstdlib>
#include <iostream>
#define MAXDIM 20
using namespace std;
int main(int argc, char *argv[])
{
int i,j;
int dim,elemento,posizione;
int volte=0;
bool trovato;
int vett[MAXDIM];
cout<<"Inserisci la dimensione del vettore\t"<<endl;
cin>>dim;
while((dim>0)&&(dim<=MAXDIM)){
for(i=0;i<dim;i++){//legge i valori
cout<<"Inserisci il valore per la posizione "<<i<<endl;
cin>>vett[i];
}
cout<<"Inserisci l'elemento da cercare\t"<<endl;
cin>>elemento;//legge l'elemento da cercare
trovato=false;//imposta trovato=falso
for(i=0;i<dim;i++){//ricerca elemento
if (vett[i]==elemento){
volte++;//aumenta dimensione vettore posizioni.
}
}
int posizioni[volte];
for(j=0;j<volte;j++){
for(i=0;i<dim;i++){
if (vett[i]==elemento){
posizioni[j]=i;
trovato=true;
}
}
}
if (trovato==true){
cout<<"L'elemento e' stato trovato "<<volte<<" volte nelle posizioni:\n";
for(i=0;i<volte;i++){
cout<<posizioni[i]<<endl;
}
}
else{
cout<<"L'elemento non e' stato trovato"<<endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
}
teoricamente ha senso quello che sto scrivendo.
crea un vettore "posizioni" di "volte" interi. fai un ciclo j, dall'elemento 0 all'ultimo elemento di questo vettore. per ognuno di questi elementi fai la ricerca. se la ricerca da esito positivo assegna all'elemento j del vettore "posizioni" il valore i del ciclo della ricerca.
però non funge come dovrebbe. mi indica solo l'ultima posizione in cui è stato avvistato l'elemento.... dategli un'occhiata vi prego
#include <cstdlib>
#include <iostream>
#define MAXDIM 20
using namespace std;
int main(int argc, char *argv[])
{
int i,j;
int dim,elemento,posizione;
int volte=0;
bool trovato;
int vett[MAXDIM];
cout<<"Inserisci la dimensione del vettore\t"<<endl;
cin>>dim;
while((dim>0)&&(dim<=MAXDIM)){
for(i=0;i<dim;i++){//legge i valori
cout<<"Inserisci il valore per la posizione "<<i<<endl;
cin>>vett[i];
}
cout<<"Inserisci l'elemento da cercare\t"<<endl;
cin>>elemento;//legge l'elemento da cercare
trovato=false;//imposta trovato=falso
for(i=0;i<dim;i++){//ricerca elemento
if (vett[i]==elemento){
volte++;//aumenta dimensione vettore posizioni.
}
}
int posizioni[volte];
for(j=0;j<volte;j++){
for(i=0;i<dim;i++){
if (vett[i]==elemento){
posizioni[j]=i;
trovato=true;
}
}
}
if (trovato==true){
cout<<"L'elemento e' stato trovato "<<volte<<" volte nelle posizioni:\n";
for(i=0;i<volte;i++){
cout<<posizioni[i]<<endl;
}
}
else{
cout<<"L'elemento non e' stato trovato"<<endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
}