/* Nome: Mario Cognome: Montanari 1. Scrivi un programma in C++ che: - Definisca una struct denominata Dato, contenente i seguenti campi: - numero (int): un numero intero; - valore (float): un numero in virgola mobile; - simbolo (char): un carattere. 2. Crei un array di Dato per gestire più elementi. 3. Implementi le seguenti funzioni: - riempiArray(Dato arr[], int n): riempie l'array di Dato chiedendo i dati all'utente (o in modo casuale). - trovaMassimo(const Dato arr[], int n): restituisce l'indice dell'elemento con il valore più alto nel campo valore. - stampaArray(const Dato arr[], int n): stampa tutti gli elementi dell'array in formato leggibile. - contaCar(const Dato arr[], char c): restituisce il conteggio delle occorrenze del carattere c. */ #include #include #include #define CAPACITY 10 #define SIZE 5 #define NUM_MIN 0 #define NUM_MAX 50 using namespace std; typedef struct { int numero; float valore; char simbolo; } Dato; void riempiArray(Dato arr[], int n); void trovaMassimo(const Dato arr[], int n); void stampaArray(const Dato arr[], int n); void contaCar(const Dato arr[], int n); int main(void) { srand(time(NULL)); Dato arr[CAPACITY]; int n = SIZE; int contaOccorrenzeC; riempiArray(arr, n); stampaArray(arr, n); contaCar(arr, n); trovaMassimo(arr, n); return 0; } void riempiArray(Dato arr[], int n) { float parteDecimale = 0; for (int i = 0; i < n; i++) { arr[i].numero = rand() % (NUM_MAX - NUM_MIN + 1) + NUM_MIN; arr[i].valore = rand() % (NUM_MAX - NUM_MIN + 1) + NUM_MIN; parteDecimale = rand() % (NUM_MAX - NUM_MIN + 1) + NUM_MIN; arr[i].valore = arr[i].valore + (parteDecimale / 100); arr[i].simbolo = rand() % (122 - 97 + 1) + 97; } } void trovaMassimo(const Dato arr[], int n) { float massimo = arr[0].valore; for (int i = 0; i < n; i++) { if (arr[i].valore > massimo) { massimo = arr[i].valore; } } cout << "Valore massimo nel campo 'valore': " << massimo << endl; } void stampaArray(const Dato arr[], int n) { for (int i = 0; i < n; i++) { cout << "Numero: " << arr[i].numero << endl; cout << "Valore: " << arr[i].valore << endl; cout << "Simbolo: " << arr[i].simbolo << endl << endl; } } void contaCar(const Dato arr[], int n) { int contaOccorrenzeC = 0; for (int i = 0; i < n; i++) { if (arr[i].simbolo == 'c') { contaOccorrenzeC++; } } cout << "Conta le occorrenze del carattere 'c': " << contaOccorrenzeC << endl; }