School-Coding-Cpp/sfusi/esercizio2_massimo_e_media_...

92 lines
2.1 KiB
C++

/*
Nome: Mario
Cognome: Montanari
Classe: 3AIN
Scrivi una funzione che ricevuto come
parametro un array di interi e la sua
dimensione, restituisca una struct
contenente il valore massimo, la media,
il numero di coppie.
*/
#include <iostream>
#include <ctime>
#include <cstdlib>
#define SIZE 10
#define MASSIMO 99
#define MINIMO 0
using namespace std;
typedef struct {
int valoreMassimo;
float media;
int numeroDiCoppie;
int array[SIZE];
} arrayDiInteri;
arrayDiInteri riempiArray();
int calcolaValoreMassimo(int arr[], int size);
float calcolaMedia(int arr[], int size);
int calcolaNumeroDiCoppie(int arr[], int size);
int main() {
arrayDiInteri dati = riempiArray();
dati.valoreMassimo = calcolaValoreMassimo(dati.array, SIZE);
dati.media = calcolaMedia(dati.array, SIZE);
dati.numeroDiCoppie = calcolaNumeroDiCoppie(dati.array, SIZE);
cout << "Array generato: ";
for (int i = 0; i < SIZE; i++) {
cout << dati.array[i] << " ";
}
cout << endl;
cout << "Valore massimo: " << dati.valoreMassimo << endl;
cout << "Media: " << dati.media << endl;
cout << "Numero di coppie: " << dati.numeroDiCoppie << endl;
return 0;
}
arrayDiInteri riempiArray() {
arrayDiInteri dati;
srand(time(NULL));
for (int i = 0; i < SIZE; i++) {
dati.array[i] = rand() % (MASSIMO - MINIMO + 1) + MINIMO;
}
return dati;
}
int calcolaValoreMassimo(int arr[], int size) {
int valoreMassimo = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > valoreMassimo) {
valoreMassimo = arr[i];
}
}
return valoreMassimo;
}
float calcolaMedia(int arr[], int size) {
int somma = 0;
float media = 0;
for (int i = 0; i < size; i++) {
somma += arr[i];
}
media = (float)somma / size;
return media;
}
int calcolaNumeroDiCoppie(int arr[], int size) {
int numeroDiCoppie = 0;
for (int i = 0; i < size - 1; i++) {
if (arr[i] == arr[i + 1]) {
numeroDiCoppie++;
}
}
return numeroDiCoppie;
}