diff --git a/verifica_3.cpp b/verifica_3.cpp new file mode 100644 index 0000000..f521950 --- /dev/null +++ b/verifica_3.cpp @@ -0,0 +1,103 @@ +/* +AUTORE: Manuel Vichi +Verifica struct +*/ +#include +#include +#include +using namespace std; + +// Struct per la funzione 1a +typedef struct { + int nMulti7; + int nMagg30; +} Struct1a; + +// Struct per le funzioni 2a +typedef struct { + char car; + int num; +} Struct2ab; + +// Dichiarazione delle funzioni da implementare +void funzione0a(int arr[], int size); +Struct1a funzione1a(int arr[], int size); +int funzione2a(Struct2ab arr[], int size); + +// Funzioni giĆ  implementate per stampa +void stampaArray(int arr[], int size) { + for (int i = 0; i < size; ++i) { + cout << arr[i] << " "; + } + cout << endl; +} + +void stampaArrayStruct2ab(Struct2ab arr[], int size) { + for (int i = 0; i < size; ++i) { + cout << "{" << arr[i].car << ", " << arr[i].num << "} "; + } + cout << endl; +} + +int main() { + srand(time(0)); // Inizializza il generatore di numeri casuali + + // Funzione 0a + int arr[10]; + funzione0a(arr, 10); + cout << "Array riempito con numeri pari casuali:" << endl; + stampaArray(arr, 10); + + // Funzione 1a + Struct1a result1a = funzione1a(arr, 10); + cout << "\nNumero di multipli di 7: " << result1a.nMulti7 << endl; + cout << "Numero di valori > 30: " << result1a.nMagg30 << endl; + + // Funzione 2a + Struct2ab structArr[5] = {{'a', 6}, {'b', 4}, {'e', 7}, {'o', 5}, {'u', 3}}; + cout << "\nArray di struct (Struct2ab):" << endl; + stampaArrayStruct2ab(structArr, 5); + + int countVocaliMag5 = funzione2a(structArr, 5); + cout << "\nElementi con vocale e num > 5: " << countVocaliMag5 << endl; + + return 0; +} + +void funzione0a(int arr[], int size) { + for (int i = 0; i < size; i++) { + int s = rand() % 1000 + 1; + if (s % 2 != 0) { + arr[i] = s + 1; + } + else { + arr[i] = s; + } + } +} +Struct1a funzione1a(int arr[], int size) { + Struct1a s; + s.nMulti7 = 0; + s.nMagg30 = 0; + for (int i = 0; i < size; i++) { + if (arr[i] % 7 == 0) { + s.nMulti7++; + } + if (arr[i] > 30) { + s.nMagg30++; + } + } + return s; +} +int funzione2a(Struct2ab arr[], int size) { + int returnValue = 0; //Inizializzazione valore di return + for (int i = 0; i < size; i++) { + if (arr[i].car == 'A' || arr[i].car == 'E' || arr[i].car == 'I' || arr[i].car == 'O' || arr[i].car == 'U' || arr[i].car == 'a' || arr[i].car == 'e' || arr[i].car == 'i' || arr[i].car == 'o' || arr[i].car == 'u') { + if (arr[i].num > 5) { + returnValue++; + } + } + } + return returnValue; +} +