|
|
|
|
Strumenti |
02-03-2018, 17:30 | #1 |
Junior Member
Iscritto dal: Mar 2018
Messaggi: 1
|
[C++]Riempire un vettore con elementi diversi?
Ciao,sono uno studente di informatica e programmo da poco in c++.
Mi chiedevo come fosse possibile riempire un vettore con elementi differenti. Ho provato cosi ma non viene: /*Inserire elementi diversi nel vettore*/ #include <iostream> #define DIM 5 using namespace std; main() { int vett[DIM],n(0); bool semaforo=false; for(int i=0;i<DIM;i++) { cout<<"Dammi un numero"<<endl; for(int j=0;j<DIM;j++) { do { if(vett[j]==n) { semaforo=false; } else { semaforo=true; vett[i]=n; break; } cin>>n; }while(semaforo==false); } } cout<<"Gli elementi del vettore sono:"<<endl; for(int i=0;i<DIM;i++) { cout<<vett[i]<<endl; } } Ultima modifica di xXS44DXx : 02-03-2018 alle 17:50. |
03-03-2018, 01:01 | #2 |
Senior Member
Iscritto dal: Nov 2012
Messaggi: 326
|
Come lo hai impostato tu non controlli l'univocità dei valori nell'array. C'è un errore proprio di impostazione.
Ti serve scorrere ogni volta l'array per controllare se quel numero è già stato inserito. Quindi serve il primo ciclo for che scorre l'array, all'interno del quale serve un ciclo do while (non però come lo hai impostato tu) che parte sempre dal primo valori sino al valore che si sta inserendo per controllare se è già stato inserito (serve quindi un altro indice che si resetta ad ogni fine ciclo for e si inizializza a zero ad ogni ciclo for. Spero di essere stato chiaro, credo che ci puoi riuscire. Se non ci riesci mi dici dove hai difficoltà e ti aiuto col codice. |
11-03-2018, 19:30 | #3 | |
Member
Iscritto dal: Jul 2009
Messaggi: 81
|
Quote:
Codice:
/*Inserire elementi diversi nel vettore*/ #include <iostream> #define DIM 5 using namespace std; main(){ int vett[DIM], n(0); bool doppione = false; for (int i = 0; i<DIM; i++) { //Input: numero cout << "Numero " << i+1 << " : "; cin >> n; //Finchè l'utente non inserisce un numero "originale" do { //Suppongo inizialmente il numero inserito non sia un doppione doppione = false; //Scan su tutto il vettore già inserito for (int j = 0; j <= i; j++) { //Check se numero già inserito //Se è già digitato può esserci al massimo un doppione //Allora già qui chiedo di reinserire un altro numero if (vett[j] == n) { doppione = true; //Richiedo nuovamente l'inserimento di un numero cout << "Riprova : "; cin >> n; } } } while (doppione); //Il numero può essere inserito nel vettore vett[i] = n; } cout << "\n\nGli elementi del vettore sono:" << endl; for (int i = 0; i<DIM; i++) { cout << vett[i] << endl; } } Skeleton |
|
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:20.