Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib> // serve a rand;
- using namespace std;
- int main()
- {
- int n;// dichiaro l'input n
- int i;// dichiaro i per usarlo nel ciclo for
- int efficenza=0;// conta quanti cicli occorrono per trovare la risposta
- cout << "Indicare la dimensione 'n' del vettore a[n] con 1<=n<=100 : ";
- cin >> n;
- while (cin.fail() || n<1 || n>100) {
- cout << "Il numero inserito e' errato!\n";
- cout << "Indicare la dimensione 'n' del vettore a[n] con 1<=n<=100 : ";
- cin.clear(); // senza questa istruzione il programma va in tilt con numeri interi >= 2*31
- cin >> n;
- }
- int a[n];// array "a" di dimensione "n" di valori interi:conterrà valori randomici compresi tra 1 to n;
- bool b[n];// array "b" di dimensione "n" di valori booleani: ad ogni valore a[n] assegnerò b[a[n]] true;
- for (i=0; i<n;i++) {
- a[i]=rand() % n + 1; // assegno dei valori randomici compresi tra 1 to n
- cout << "a[" << i << "]=" << a[i] << "\n";
- }
- for (i=0; i<n;i++) b[i]=false; // pulisco l'array b e assegno false;
- i=0; // reinizializzo i per il ciclo while che segue
- while (i<n) if (b[a[i]]==false) {
- b[a[i]]=true;
- i++;
- efficenza++;
- }
- else {
- cout << "Il valore di a[" << i << "] e' presente 2 volte" << endl;
- cout << "E ci sono voluti " << efficenza << " cicli :D";
- return 0;
- }
- cout << "Spiacente! Nessun valore ripetuto trovato..." << endl;
- cout << "E ci sono voluti " << efficenza << " cicli :D";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement