/*
AUTORE: Manuel Vichi
Valore massimo, minimo e media con struct
*/
#include <iostream>
#include <iomanip>
#include <climits>
using namespace std;
typedef struct {
	int max;
	int min;
	int media;
} matematica;

matematica aritmetica(int arr[], int n) {
	int somma,valoremax = 0, valoremin = INT_MAX;
	matematica s;
	for (int i = 0; i < n; i++) {
		somma += arr[i];
		if (arr[i] > valoremax)
			valoremax = arr[i];
		if (arr[i] < valoremin)
			valoremin = arr[i];
	}
	s.media = somma/n;
	s.max = valoremax;
	s.min = valoremin;
	return s;
}

void stampaMatematica(matematica struttura) {
	cout << "Valore massimo: " << struttura.max << endl << "Valore minimo: " << struttura.min << endl << "Media: " << struttura.media << endl;
}

int main(void) {
	cout << "Inserisci il numero di valori da chiedere in input: ";
	int valori;
	cin >> valori;
	cout << endl;
	int arr[valori];
	for (int i = 0; i < valori; i++) {
		cout << "Inserisci il valore per la posizione " << i << " dell'array: ";
		cin >> arr[i];
		cout << endl;
	}
	stampaMatematica(aritmetica(arr,valori));
	return 0;
}
