Plataforma: URI
Problema: 1118
Enunciado:
Escreva um programa para ler as notas da primeira e a segunda avaliação de um aluno. Calcule e imprima a média semestral. O programa só deverá aceitar notas válidas (uma nota válida deve pertencer ao intervalo [0,10]). Cada nota deve ser validada separadamente. No final deve ser impressa a mensagem “novo calculo (1-sim 2-nao)”, solicitando ao usuário que informe um código (1 ou 2) indicando se ele deseja ou não executar o algoritmo novamente, (aceitar apenas os código 1 ou 2). Se for informado o código 1 deve ser repetida a execução de todo o programa para permitir um novo cálculo, caso contrário o programa deve ser encerrado.
Linguagem: C
Solução:
#include <stdio.h> double recebeNota(){ double nota; while (1) { scanf("%lf",¬a); if (nota<0 || nota>10) printf("nota invalida\n"); else return nota; } } int recebeOpt() { int opt; while (1) { printf("novo calculo (1-sim 2-nao)\n"); scanf("%i",&opt); if (opt==2) exit(0); if (opt==1) return 1; } } int main(){ int novoCalculo; double nota1, nota2; while (1){ nota1=recebeNota(); nota2=recebeNota(); printf("media = %.2lf\n", (nota1+nota2)/2.0); novoCalculo=recebeOpt(); } return 0; }