Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione
Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione
Nothing propone sul mercato non uno ma ben due auricolari nuovi: Ear di terza generazione e Ear (a) ossia un nuovo modello a basso costo pronto a ritagliarsi una fetta di mercato. Entrambi rimangono fedeli al marchio per il design ancora trasparente ma fanno un balzo in avanti notevole per qualità e soppressione del rumore.  
Sony FE 16-25mm F2.8 G: meno zoom, più luce
Sony FE 16-25mm F2.8 G: meno zoom, più luce
Il nuovo Sony FE 16-25mm F2.8G si aggiunge all'analogo 24-50mm per offrire una coppia di zoom compatti ma di apertura F2.8 costante, ideali per corpi macchina altrettanto compatti (vedi A7c ) e fotografia di viaggio.
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione
Motorola è decisa sulla sua strada: questo nuovo edge 50 Pro non guarda a specifiche stellari ma considera di più l’aspetto estetico. E si propone elegantemente con linee sinuose e un sistema operativo veloce. Peccato per un prezzo un po' fuori mercato.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 02-03-2018, 17:30   #1
xXS44DXx
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.
xXS44DXx è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2018, 01:01   #2
Eduadie
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.
Eduadie è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2018, 19:30   #3
skeleton
Member
 
L'Avatar di skeleton
 
Iscritto dal: Jul 2009
Messaggi: 81
Quote:
Originariamente inviato da xXS44DXx Guarda i messaggi
Ciao,sono uno studente di informatica e programmo da poco in c++.
Mi chiedevo come fosse possibile riempire un vettore con elementi differenti.
Ciao ti posto il codice che risolve il tuo problema. L'ho riempito di commenti, ma in caso avessi problemi nella sua comprensione chiedi pure. Il programma segue quanto detto a grandi linee da Eduadie.

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;
	}
}
A presto.


Skeleton
skeleton è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nothing Ear e Ear (a): gli auricolari per tutti i gusti! La ''doppia'' recensione Nothing Ear e Ear (a): gli auricolari per tutti ...
Sony FE 16-25mm F2.8 G: meno zoom, più luce Sony FE 16-25mm F2.8 G: meno zoom, più lu...
Motorola edge 50 Pro: design e display al top, meno il prezzo! Recensione Motorola edge 50 Pro: design e display al top, m...
Ecovacs Goat G1-800, mettiamo alla prova il robot tagliaerba facile ed efficace Ecovacs Goat G1-800, mettiamo alla prova il robo...
ASUS ProArt 1, un PC completo ad altissime prestazioni per creator e non solo ASUS ProArt 1, un PC completo ad altissime prest...
iPhone 15 Pro 1 TB è sceso a 1.442€. Il ...
LastPass, campagna di phishing ai danni ...
ECOVACS DEEBOT T30 PRO OMNI è ancora dis...
Apple Watch Series 9 GPS + Cellular 45mm...
Apple verso la sostenibilità con ...
SK hynix e TSMC insieme per realizzare l...
Vi siete persi l'Antologia di Fallout in...
Scope elettriche in offerta su Amazon. O...
Llama 3, Meta introduce il Large Languag...
Tanti forni a microonde in offerta: c'&e...
Una storia di contraccezione forzata vin...
SYNLAB sotto attacco: sospesa l'attivit&...
BYD Seal U, primo contatto. Specifiche, ...
Intel ha completato l'assemblaggio dello...
Cina: aumenta del 40% la produzione di c...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:20.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www1v