0
I’m having a problem where I did a program to calculate a student’s average, where the condition is:
MEAN = NOTA1 + NOTA2/2 (the result should be >= 7 for the student to pass)
The program is running right, the problem is that when I use decimal values close to 7 it does not return the response of the condition...
For example; the average was: 6,9. The right one was to appear the message (DISAPPROVED), but it does not appear... if I use values.
The curious thing is that if it is any decimal number below 6, it works normally... for example: media = 5.9 prints FAILED
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!");
}
Else if (Numbers > 10 & MEDIA_FINAL < 7) AND ALSO Else if (MEDIA_FINAL < 7 & Numbers <= 10)
– user60252
From what I’ve seen, you have no fail condition where test that is less than 7, always less than 6. So values between 6 and 7 are ignored from tests.
– Grupo CDS Informática
The solution is given by my comment above, I only drafted an answer because surely others will do based on this condition.
– user60252
read this post https://pt.meta.stackoverflow.com/questions/1078/como-e-por-que-aceitar-uma-resposta/1079#1079
– user60252