Ir ao conteúdo
  • Cadastre-se

C++ Calcular média com valores não negativos entre 0 e 10 em C++


Posts recomendados

Preciso de um programa que calcule a média de cada uma das classes que um professor leciona, a quantidade de notas entradas no programa é indeterminada. O programa deve entrar com as notas e quando o valor da nota digitada pelo professor for negativa o programa calcula e imprime a média das notas entradas anteriormente e termina sua execução, o programa só deve computar notas no intervalo entre 0 e 10.

Este é meu código, por hora:

 

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>


int main()

{
    float nota;
    float media;
    float decisão;
    float qnota;
    int contador;


    setlocale(LC_ALL, "");
    do {
    nota=0;
    media=0;
    contador=1;
    printf("Quantas notas você deseja calcular?\n");
    scanf("%f", &qnota);
    do{

   printf("Coloque a nota %i\n", contador);
    scanf("%f", &nota);
    media=nota+media;
    contador=contador+1;
    }while(qnota+1>contador);

    media=(media)/qnota;
    printf("A média do aluno é: %0.2f\n", media);

        if (media<=59){
        printf("Reprovado\n");
    }
    else {
        printf("Aprovado\n");
    }

    printf("Se quiser efetuar outro calculo digite 1, se não quiser, digite 0.\n");
    scanf("%f", &decisão);

    } while(decisão>0);

    return 0;
}

 

Não cheguei no resultado esperado, acho que da pra continuar a montar o programa a partir do código acima.

Link para o comentário
Compartilhar em outros sites

Seria algo assim?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    int quantidade;

    double entrada;
    double media;

    char situacao[10] = "";
    char repetir = 's';

    do {
        // Reseta as variáveis a cada ciclo
        entrada = 0;
        media = 0;

        system("cls");

        for (quantidade = 0;; ++quantidade) {
            do {
                printf("Nota [%i]: ", (quantidade + 1));
                scanf("%lf", &entrada);
            } while (entrada > 10);

            if (entrada >= 0)
                media += entrada;
            else
                break;
        }

        if (quantidade > 0)
            media /= quantidade;

        if (media >= 6)
            strcpy(situacao, "Aprovado");
        else
            strcpy(situacao, "Reprovado");

        printf("------------------------------ \n");
        printf("   Média: %.2f \n", media);
        printf("Situação: %s \n", situacao);
        printf("------------------------------ \n");

        printf("Repetir [ S / N ]: ");
        scanf(" %c", &repetir);
    } while(repetir == 's');

    return 0;
}

Observações:

1- O for está trabalhando com uma variável externa à sua declaração, isso é útil porque assim podemos acessar essa variável fora do laço.

2- Repare que o segundo argumento do for foi omitido, isso porque a condição de parada não é numérica.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!