#include <stdio.h>
#include <stdlib.h>
#define CH 80 //Carga horária
int main()
{
int i=0, qtde, matr/*matríc.*/,fal/*no.faltas*/,
nAP=0, nRF=0, nRM=0, nFN=0,//p/contagens de alunos respectivamente.
matrMaiorNF/*matr do de maior NF*/;
float AB1, AB2, RA,//notas do aluno
NF, maiorNF = 0;
printf("Quantidade de alunos: ");
scanf("%d",&qtde);
while(qtde<=0){
printf("Dado invalido!\nDigite outro valor: ");
scanf("%d",&qtde);
}
printf("Digite No.matric, AB1, AB2, RA, No.faltas:\n");
while(i<qtde){
//printf("%do.: ",i+1);
scanf("%d %f %f %f %d",&matr,&AB1,&AB2,&RA,&fal);
if (matr>0 && AB1>=0 && AB1<=10 && AB2>=0 && AB2<=10 &&
RA>=0 && RA<=10 && fal>=0 && fal<=80){
//Cálculo e escrita de NF:
if(AB1 < AB2 && AB1 < RA) //se AB1 for a menor de todas
NF = (AB2 + RA)/2; //calc. a NF pelas duas maiores.
else if(AB2 < RA) //Não sendo AB1 a menor, será AB2 ou RA.
NF = (AB1 + RA)/2; //AB2 < RA, AB2 é a menor de todas
else
NF = (AB1 + AB2)/2; //senão, RA é a menor.
printf("NF = %.1f, ",NF);
//Determ., escrita do resultado e contagens:
if (fal > 0.25*CH){
printf("'RF'\n");
nRF++;
}else if (NF < 5.0){
printf("'RM'\n");
nRM++;
}else if (NF >= 7.0){
printf("'AP'\n");
nAP++;
}else{
printf("'FN'\n");
nFN++;
}
//Sel.a maior NF e da matr associada:
if (NF>maiorNF){
maiorNF = NF;
matrMaiorNF = matr;
}
i++;//Incrementa i somente se a entrada estiver correta.
}else{
printf("Dado invalido!\n");
}
}
printf("\nAprovados: %.1f%%, Reprov: %.1f%%, Na final: %.1f%%\n",
nAP*100.0/qtde, (nRF+nRM)*100.0/qtde, nFN*100.0/qtde);
if(nRF+nRM!=0){
printf("Dos reprov, por falta: %.1f%%, por media: %.1f%%\n",
nRF*100.0/(nRF+nRM),nRM*100.0/(nRF+nRM));
}
printf("Aluno com maior NF(%.1f): No.matric.%.5d\n",maiorNF,matrMaiorNF);
return 0;
}
obs: não é só esse, eu já testei com varios outros q eu já tinha feito