I have a problem where I made a program to calculate the average of a student, where the condition is:
AVERAGE = NOTE1 + NOTE2 / 2 (the result should be> 7 for the student to be approved)
The program is running fine, the problem is that when I use decimal values close to 7 it does not return the condition response ...
For example; the mean was: 6.9 . The right thing was to show the message (REJECTED), but it does not appear ... if I use values.
The most curious thing is that if it is any decimal number below 6, it works normally ... for example: media = 5.9 prints REPROVED successfully
string NomeDoAluno, disciplina, RA;
int NumeroDeFaltas;
double NP1, NP2, MEDIA_FINAL;
Console.Write("\nDIGITE O SEU NOME: ");
NomeDoAluno = Console.ReadLine();
Console.Write("DIGITE O SEU RA: ");
RA = Console.ReadLine();
Console.Write("DIGITE A DISCIPLINA: ");
disciplina = Console.ReadLine();
Console.Write("DIGITE O SEU NÚMERO DE FALTAS: ");
NumeroDeFaltas = int.Parse(Console.ReadLine());
Console.Write("DIGITE SUA NP1 E SUA NP2: ");
NP1 = Double.Parse (Console.ReadLine());
NP2 = Double.Parse (Console.ReadLine());
MEDIA_FINAL = (NP1 + NP2) / 2;
Console.WriteLine("\nNome: {0} \tRA: {1}", NomeDoAluno, RA);
Console.WriteLine("\nDisciplina: {0} \t Número de Faltas: {1}", disciplina,NumeroDeFaltas);
Console.WriteLine("\nNotas\tP1: {0} \tP2: {1} \tMEDIA FINAL: {2}", NP1, NP2,MEDIA_FINAL);
//CONDIÇÃO PARA APROVAÇÃO DO ALUNO
if (MEDIA_FINAL >= 7 & NumeroDeFaltas <= 10)
{
Console.Write("\nPARABÉNS VOCÊ FOI APROVADO !");
}
else if (NumeroDeFaltas > 10 & MEDIA_FINAL <= 6)
{
Console.Write("\nVOCÊ FOI REPROVADO POR FALTA E NOTA!");
}
else if (NumeroDeFaltas > 10 & MEDIA_FINAL >=7)
{
Console.Write("\nVOCÊ FOI REPROVADO POR FALTA !");
}
else if (MEDIA_FINAL <= 6 & NumeroDeFaltas <= 10)
{
Console.Write("\nVOCÊ FOI REPROVADO POR NOTA!");
}