rob (Normal User)
Newbie
Messaggi: 16
Iscritto: 16/11/2013
|
Ho creato un programma che, inseriti n numeri, viene chiesto all'utente di inserirne un altro e vedere se è contenuto nell'Array:
Codice sorgente - presumibilmente C++ |
#include <iostream> #define nmax 100 using namespace std; int main(){ int valori[nmax], num, search; cout << "Quanti valori vuoi inserire? "; cin >> num; cout << "\n\n" "Inserisci i valori dell'array: " << endl; for (int i = 0; i < num; i++){ cin >> valori[i]; //l'utente inserisce i valori } cout << "\nValori inseriti." << endl; cout << "\nQuale numero vuoi cercare? "; cin >> search; //l'utente scrive il numero da cercare for (int p = 0; p < num; p++){ if (search == valori[p]){ cout << "\nValore trovato!\n"; } else cout << "\nValore NON trovato!\n"; return 0; } return 0; }
|
Il problema è che alla fine il compilatore non riesce a capire se è presente o no e mi scrive più volte valore trovato! o Valore NON trovato!.
Dov'è il problema?
Grazie...
Ultima modifica effettuata da rob il 03/01/2014 alle 17:37 |
|
ale.gatti96 (Member)
Pro
Messaggi: 71
Iscritto: 29/11/2011
|
Il problema è che tu stampi trovato o non trovato per ogni elemento dell'array, invece devi farlo solo alla fine.
Ad esempio puoi fare così:
Codice sorgente - presumibilmente C/C++ |
bool trovato = false;
for (int p = 0; p < num; p++)
if (search == valori[p])
trovato = true;
|
Volendo potresti fare ancora meglio uscendo dal for quando trovi l'elemento.
Poi sarebbe meglio controllare che num non sia maggiore di nmax, altrimenti vai fuori dall'array.
|
|
quello che non so come si chiama (Normal User)
Rookie
Messaggi: 37
Iscritto: 08/01/2013
|
Postato originariamente da rob:
Il problema è che alla fine il compilatore non riesce a capire se è presente o no
|
Il problema è tutto fuorché il compilatore... Ultima modifica effettuata da quello che non so come si chiama il 03/01/2014 alle 19:10 |
|
rob (Normal User)
Newbie
Messaggi: 16
Iscritto: 16/11/2013
|
Risolto, grazie
|
|