#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define NOTA_MIN 60
#define NUM_AULAS 72
/*
* =================================================
*    Filename:  .c
* Description:
*     Created:  dd/mm/18 hh:mm
* =================================================
*/

typedef struct aluno
{
	char nome[3][20], situacao;
	int num_faltas, matricula[12];
	float nota[3], media;
} Aluno;

float media(Aluno *A){
	return ((A->nota[0] + A->nota[1] + A->nota[2])/3.0);
}

char situacao(Aluno B)
{

//	 [a]provado
	if((B.media >= NOTA_MIN) && (B.num_faltas <= (NUM_AULAS*25)/100))
		return 'a';

	// Reprovado por [f]alta
	else if(A.faltas > (NUM_AULAS*25)/100)
		return 'f';

	// Repovado por [n]ota
	else return 'n';
}

void print_data(Aluno a1[3])
{
	printf("-- RELATORIO --\n");

	for(int i = 0;i < 3;i++)
	{
		printf("Aluno %s:\n", a1[i].nome);
		printf("Media: %.2f\nSITUACAO: ", a1[i].media);
		if (situacao(a1[i]) == 'a')
			printf("Aprovado\n");
		else if (situacao(a1[i]) == 'f') printf("Reprovado por falta\n");
		else printf("Reprovado por nota\n");
		putchar('\n');
	}
}

void melhor_aluno(Aluno D[3])
{
	float melhor_nota, maior_media, menor_media, media_geral, Media[3];
	for(int i = 0;i < 3;i++)
	{
		melhor_nota = D[i].nota[i][0];
		for(int j = 0;j < 3;j++)
		{
			if(D[i].nota[i][j] > melhor_nota) melhor_nota = D[i].nota[i][j];
		}
	}
}

int main(int argc, char **argv)
{
	Aluno a1[3];
	char nomes[3][20] = {"Irineu", "Leibi do Biruleibi", "Felipe Smith"};
	//					  P1    P2    P3
	float notas[3][3] = {10.0, 80.0, 50.0,\
						 40.0, 60.0, 90.0,\
						100.0, 50.0, 70.0};
	int faltas[3] = {5, 8, 15};

	for(int i = 0;i < 3;i++)
	{
		strcpy(a1[i].nome, nomes[i]);

		for(int j = 0;j < 3;j++)
			a1[i].nota[j] = notas[i][j];

		a1[i].media = media(&a1[i]);

		a1[i].num_faltas = faltas[i];

		situacao(a1[i]);
	}
	print_data(a1);

    return 0;
}

