/*
AUTORE: Manuel Vichi
Struct con valore massimo, media e valori duplicati
*/
#include <iostream>
#include <array>
#include <vector>
#include <cstdlib>
using namespace std;
typedef struct {
	int max;
	int duplicati;
	float media;
} Risultati;

Risultati analizzaArray(const int array[], size_t size) {
	Risultati risultati = {array[0], 0, 0.0f};
	int somma = 0,duplicati = 0;
	for (size_t i = 0; i < size; i++) {
		if (array[i] > risultati.max)
			risultati.max = array[i];
		somma += array[i];
	}
	risultati.media = somma/size;
	for (size_t i = 0; i < size; i++) 
		for (size_t j = i + 1; j < size; j++)
			if (array[i] == array[j]) {
				duplicati++;
				break;
			}
	risultati.duplicati = duplicati;
	return risultati;
}

int main(void) {
	size_t num;
	cout << "Inserisci il numero di numeri da memorizzare nell'array: ";
	cin >> num;
	cout << endl;
	int array[num];
	for (size_t i = 0; i < num; i++) {
		cout << "Inserisci il numero da memorizzare nell'array: ";
		cin >> array[i];
		cout << endl;
	}
	Risultati risultati = analizzaArray(array,num);
	cout << "Valore massimo: " << risultati.max << endl << "Valori duplicati: " << risultati.duplicati << endl << "Media: " << risultati.media << endl;
	return 0;
}
