|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2008
Città: Messina
Messaggi: 548
|
[c++] ricerca ed indicazione posizioni in un vettore
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 Codice:
#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;
}
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2009
Messaggi: 638
|
Ciao.
Codice:
int posizioni[volte]; Poi il tuo algoritmo è sbagliato in diversi punti. Il problema sta nei 2 for annidiati (j e i). Ti consiglio di toglierli e fare l'inserimento in "posizioni" nel primo ciclo "i", dove aumenti "volte". Poi, perchè usi un while per controllare l'input?? un if non andava bene??? |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:28.





















