Concetti Chiave
- Il programma C++ riceve in input la dimensione di un array e i suoi elementi, quindi identifica i numeri non duplicati.
- Utilizza un array ausiliario di booleani per tracciare quali numeri sono duplicati, inizialmente considerandoli tutti non duplicati.
- Attraverso cicli nidificati, il programma confronta ogni elemento dell'array con gli altri per rilevare duplicati.
- Se un duplicato viene trovato, l'elemento corrispondente nell'array ausiliario viene impostato su false.
- Il programma stampa i numeri non duplicati e termina restituendo 0 se non ve ne sono.
Programma C++ il quale inseriti dei numeri in un array stampa quelli duplicati
#include
using namespace std;
int main()
{
int n,con=0;
cout
cin>> n;
int a[n];
bool c[n];
for (int i=0; i
c= true;
}
for (int i=0; i
c= false;
}
}
for (int i=0; i
con= con+1;
}
if (con>1)
cout
else
if (con==0){
cout
return 0;
}else
cout
for (int i=0; i
cout;
if (con>1){
con= con-1;
cout
}
}
}
return 0;
}
Il codice scritto è un programma in C++ che chiede all'utente di inserire il numero di celle di un array, quindi acquisisce gli elementi dell'array dall'utente. Successivamente, determina quali numeri non sono duplicati nell'array e li visualizza.
Ecco una spiegazione linea per linea del codice:
#include
using namespace std;: Specifica l'utilizzo del namespace standard per evitare la scrittura esplicita di std:: prima delle funzioni della libreria standard.
int main(): Funzione principale del programma, da dove inizia l'esecuzione.
int n, con = 0;: Dichiarazione delle variabili n e con come interi. n conterrà il numero di celle dell'array, con conterà il numero di numeri non duplicati.
cout
cin >> n;: Acquisisce il valore inserito dall'utente e lo memorizza nella variabile n.
int a[n];: Dichiarazione di un array di interi di dimensione n, utilizzato per memorizzare gli elementi inseriti dall'utente.
bool c[n];: Dichiarazione di un array di booleani di dimensione n, utilizzato per tenere traccia dei numeri duplicati. Inizialmente, tutti gli elementi sono impostati su true.
for (int i = 0; i
cout
cin >> a;: Acquisisce il valore inserito dall'utente e lo memorizza nell'array a nella posizione i.
c = true;: Imposta l'elemento i dell'array c su true, indicando che inizialmente tutti i numeri sono considerati non duplicati.
for (int i = 0; i
for (int y = 0; y
if (i != y && a == a[y]): Verifica se gli elementi i e y dell'array a sono diversi e uguali, indicando un duplicato.
c = false;: Imposta l'elemento i dell'array c su false se viene trovato un duplicato.
for (int i = 0; i
if (c): Verifica se l'elemento i dell'array c è impostato su true, indicando un numero non duplicato.
con = con + 1;: Incrementa il contatore con di 1.
if (con > 1): Verifica se il contatore con è maggiore di 1, indicando la presenza di numeri non duplicati.
cout
if (con == 0): Verifica se il contatore con è uguale a 0, indicando l'assenza di numeri non duplicati.
cout
cout
if (c): Verifica se l'elemento i dell'array c è impostato su true, indicando un numero non duplicato.
cout ;: Stampa a schermo il numero non duplicato.
if (con > 1): Verifica se il contatore con è maggiore di 1, indicando che ci sono altri numeri non duplicati.
con = con - 1;: Decrementa il contatore con di 1.
cout
return 0;: Termina il programma restituendo 0.
Domande da interrogazione
- Come funziona il programma C++ per identificare i numeri duplicati in un array?
- Qual è il ruolo dell'array ausiliario 'c' nel programma?
Il programma acquisisce prima un insieme di numeri dall'utente e li memorizza in un array. Successivamente, utilizza cicli nidificati per confrontare ogni elemento dell'array con tutti gli altri. Se trova elementi uguali in posizioni diverse, identifica questi numeri come duplicati. Infine, stampa il conteggio dei numeri non duplicati, utilizzando un array ausiliario per tenere traccia degli elementi già considerati duplicati.
L'array ausiliario 'c' viene utilizzato per tenere traccia dello stato di ogni numero nell'array principale 'a'. Inizialmente, tutti gli elementi di 'c' sono impostati su true, indicando che ogni numero è considerato non duplicato. Durante il confronto, se viene trovato un duplicato, l'elemento corrispondente in 'c' viene impostato su false. Questo permette al programma di distinguere tra numeri duplicati e non duplicati, facilitando la stampa finale del conteggio dei numeri unici.