Elaborar um programa em C que:
1 - Receba uma nota (entre 0.0 e 10.0):
digite sua nota \n
2 - Classifica a nota na matéria em: passou direto, ficou de recuperação ou foi reprovado direto.
A regra é a seguinte:
Nota 7 ou mais →\to→ \n passou direto com a nota ?.??
Entre 4 e 7 →\to→ \n tem direito de fazer uma prova de recuperação a nota ?.??
Abaixo de 4 →\to→ \n reprovado direto com a nota ?.??
3 - O programa deverá usar obrigatoriamente a estrutura IF-ELSE IF-ELSE:
4 - Formatar as notas com duas casas decimais (exemplo abaixo):
printf("%0.2f", nota);
Sample Input:
7.10
Sample Output:
digite sua nota
passou direto com a nota 7.10
Soluções para a tarefa
#include <stdio.h>
int main() {
float nota;
printf("Digite sua nota: ");
while(fscanf(stdin, "%f",¬a)==1) {break;}
if(nota > 10) {
printf("Nota inválida.\n");
} else if(nota >= 7) {
printf("Passou direto com nota %.2f\n", nota);
} else if(nota >= 4) {
printf("Tem direito de fazer uma prova de recuperação a nota %.2f\n", nota);
} else {
printf("Reprovado direto com nota %.2f\n", nota);
}
return 0;
}
No código usamos uma variável float para guardar a nota do usuário, já que esse tipo permite que tenhamos casas decimais.
Usamos a função fscanf para ler uma entrada do stdin e guardar a resposta na variável nota.
Depois disso a cadeia de if funciona assim:
Se a nota for maior que 10:
Nota inválida
Mas se a nota for maior que ou igual 7 (E consequentemente menor que 10):
Passou direto
Mas se a nota for maior que ou igual 4 (E consequentemente menor que 7):
Recuperação
Se não:
Reprovou
Testado em Arch Linux usando o compilador gcc 11.1.0
Espero ter ajudado!
Happy Coding :)