Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Boa tarde! Não estou conseguindo resolver uma atividade que passaram na aula

Problema: Numa faculdade, os alunos com média maior ou igual a 7,0 são aprovados, aqueles com média inferior a 3,0 são reprovados e os demais ficam de recuperação. Dadas as duas notas de um aluno, informe sua situação. Emitir as mensagens aprovado, reprovado e recuperação, respectivamente

Codigo:

#include <stdio.h>

int main (){

float nota1, nota2, media;

printf("Digite suas duas notas: ");
scanf("%f %f" , &nota1 , &nota2);

media = (nota1 + nota2) / 2;

if(media >= 7){

printf("Aprovado");

if(media < 3)

    printf("Reprovado");


}

else
    printf("Recuperacao");

return 0;

}

1 resposta
solução!

Olá! Tudo bem? Parece que há um pequeno problema na lógica das condições if que está impedindo o código de funcionar corretamente.

No seu código, a verificação para "Reprovado" está dentro do bloco if que verifica se a média é maior ou igual a 7, o que nunca será verdade, já que uma média menor que 3 não pode ser maior ou igual a 7 ao mesmo tempo. Vamos corrigir isso:

#include <stdio.h>

int main() {
    float nota1, nota2, media;

    printf("Digite suas duas notas: ");
    scanf("%f %f", &nota1, &nota2);

    media = (nota1 + nota2) / 2;

    if (media >= 7) {
        printf("Aprovado\n");
    } else if (media < 3) {
        printf("Reprovado\n");
    } else {
        printf("Recuperacao\n");
    }

    return 0;
}

Aqui está o que foi ajustado:

  • Usei else if para verificar se a média é menor que 3, fora do bloco if que verifica se a média é maior ou igual a 7.
  • Adicionei quebras de linha (\n) após cada mensagem para melhorar a formatação da saída.

Com essas alterações, o código deve funcionar conforme o esperado, emitindo "Aprovado", "Reprovado" ou "Recuperacao" de acordo com as notas inseridas.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.