/*
AUTORE: Manuel Vichi
Dato
*/
#include <iostream>
#include <cstdlib>
#include <ctime>
#define SIZEARRAY 10
using namespace std;
typedef struct {
	int numero;
	float valore;
	char simbolo;
} Dato;

void riempiArray(Dato arr[], size_t size) {
	srand(time(NULL));
	for (size_t i = 0; i < size; i++) {
		arr[i].numero = rand() % 100;
		arr[i].valore = (float)rand();
		arr[i].simbolo = 'A' + rand() % 65;
	}
}

int trovaMassimo(const Dato arr[], size_t size) {
	float valoremax = 0;
	int index;
	for (size_t i = 0; i < size; i++) {
		if (arr[i].valore > valoremax) {
			valoremax = arr[i].valore;
			index = i;
		}
	}
	return index;
}

int contaCar(const Dato arr[], size_t size, char c) {
	int occorrenze = 0;
	for (size_t i = 0; i < size; i++) {
		if (arr[i].simbolo == c) {
			occorrenze++;
		}
	}
	return occorrenze;
}

void stampaArray(const Dato arr[], size_t size) {
	for (size_t i = 0; i < size; i++) {
		cout << "Numero: " << arr[i].numero << ", Valore: " << arr[i].valore << ", Carattere: " << arr[i].simbolo << endl;
	}
}

int main(void) {
	Dato array[SIZEARRAY];
	riempiArray(array,SIZEARRAY);
	stampaArray(array,SIZEARRAY);
	cout << "Occorrenze del carattere A: " << contaCar(array,SIZEARRAY,'A') << endl;
	cout << "Indice Valore massimo: " << trovaMassimo(array,SIZEARRAY);
	return 0;
}