Esercizio in C++: Completare la funzione voidvaloriCasuali() che prende in input un array e la sua dimensionee modifica l'array in modo tale che gli elementi al suo interno si scambiano in modo casuale.


Questa implementazione utilizza la funzione scambiaValori per scambiare due valori all'interno dell'array, la funzione indiceCasuale per generare un indice casuale tra gli elementi dell'array e infine la funzione valoriCasuali per mescolare gli elementi dell'array in modo casuale.

/* Completare la funzione voidvaloriCasuali()
che prende in input un array e la sua dimensione
e modifica l'array in modo tale che gli elementi
al suo interno si scambiano in modo casuale. */

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;


// Funzione per scambiare due valori in un array
voidscambiaValori(int& a, int& b) {

int temp = a;

a = b;

b = temp;

}

// Funzione per generare un indice casuale compreso tra due valori
int indiceCasuale(int min, int max) {
return min + rand() % (max - min + 1);

}


// Funzione per mescolare casualmente gli elementi di un array

voidvaloriCasuali(int array[], int size) {
// Inizializzazione del seed per i numeri casuali
srand(time(0));


for (int i = 0; i < size; i++) {
// Genera un indice casuale tra 0 e size-1
int indice = indiceCasuale(0, size - 1);



// Scambia l'elemento corrente con un elemento casuale nell'array
scambiaValori(array[i], array[indice]);

}
}


int main() {

int array[] = {1, 2, 3, 4, 5};

int size = sizeof(array) / sizeof(array[0]);


valoriCasuali(array, size);

// Stampare l'array dopo che gli elementi sono stati scambiati casualmente

for (int i = 0; i < size; i++) {
cout<< array[i] << " ";
}

return 0;

}



Commenti

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

Esercizi in Excel e fogli di Google