Escreva um programa completo que permita a qualquer aluno introduzir, pelo teclado, uma sequência arbitrária de notas (válidas no intervalo de 10 a 20) e que mostre na tela, como resultado, a correspondente média aritmética. O número de notas com que o aluno pretenda efetuar o cálculo não será fornecido ao programa, o qual terminará quando for introduzido um valor que não seja válido como nota de aprovação.

Passo 1

O programa deve permitir que o usuário introduza notas no intervalo de 10 a 20 até que seja digitada uma nota fora desse intervalo, e ao final calcular a média aritmética das notas válidas. Para isso vamos usar um loop de leitura infinita com uma condição de parada (sentinela), variáveis para acumular soma e contar quantas notas foram válidas, e ao final computar a média.

Passo 2

Declarar as variáveis necessárias: uma do tipo float para armazenar cada nota lida (nota), outra do tipo float para acumular a soma das notas (soma) e uma variável inteira para contar quantas notas válidas foram introduzidas (cont). Inicializar soma com 0.0 e cont com 0.

Passo 3

Usar um loop infinito (por exemplo while(1)) para ler sucessivamente as notas. A cada iteração, solicitar ao usuário que digite uma nota e usar scanf para ler o valor em nota.

Passo 4

Após ler a nota, verificar se ela está fora do intervalo válido (nota < 10.0 || nota > 20.0). Se estiver, usar break para sair do loop de leitura.

Passo 5

Se a nota for válida, adicionar seu valor à variável soma e incrementar cont em 1, retornando ao topo do loop para ler a próxima nota.

Passo 6

Depois de sair do loop, verificar se cont > 0. Se sim, calcular a média como soma/cont e imprimir o resultado com duas casas decimais. Caso contrário, imprimir uma mensagem informando que nenhuma nota válida foi introduzida.

Passo 7

Encerrar o programa retornando 0 para indicar término normal.

Resposta

#include <stdio.h>
int main() {
float nota, soma = 0.0f;
int cont = 0;
printf("Introduza as notas (10 a 20). Para terminar, escreva um valor fora desse intervalo.\n");
while (1) {
    printf("Nota: ");
    if (scanf("%f", &nota) != 1) {
        // Se a leitura falhar, interrompe
        printf("Entrada inválida.\n");
        break;
    }
    if (nota < 10.0f || nota > 20.0f) {
        // Condição de parada: nota fora do intervalo
        break;
    }
    soma += nota;
    cont++;
}

if (cont > 0) {
    printf("Média: %.2f\n", soma / cont);
} else {
    printf("Nenhuma nota válida foi introduzida.\n");
}

return 0;
}

Exercícios relacionados