Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com linguagem C básica


Luis G Zeca

Pergunta

Boa noite,

Estava fazendo um programa para calcular a média ponderada da minha faculdade, porém, meu código parece pular o primeiro 'if' e depois disso ele aparentemente 'crasha'. Se alguém puder me dar uma luz e me falar aonde estou errando, eu serei eternamente grato kk

 

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>


main()
{
    float prova=0, quiz=0, trab=0, pesop=0, pesoq=0, pesot=0, pesototal=0, media=0;
    int quest=1;
    while (quest==1)
    {
        printf("Primeiro, vamos dar entrada nas suas notas\n");
        printf("-----------------------------------------\n");
        printf("Qual foi a sua nota de prova?\n");
        scanf("%f",&prova);    
        printf("\nQual foi a sua nota de quiz?\n");
        scanf("%f",&quiz);    
        printf("\nQual foi a sua nota de trabalho?\n");
        scanf("%f",&trab);
        printf("-----------------------------------------\n");
        printf("Agora vamos colocar o peso de cada nota para que a média possa ser calculada\n");
        //printf("Insira valores que totalizarão no máximo 1.0\n");
        printf("-----------------------------------------\n");
        peso:
        printf("\nQual o peso da sua prova na disciplina em questão?\n");
        scanf("%f",&pesop);    
        printf("\nQual o peso do quiz na disciplina em questão?\n");
        scanf("%f",&pesoq);    
        printf("\nQual o peso do trabalho na disciplina em questão?\n");
        scanf("%f",pesot);
        pesototal = pesop + pesoq + pesot;        
        
        if (pesototal!=10)
        {
            printf("Os pesos colocados não correspondem a uma média que vale 10 pontos, favor corrija-os\n\n\n");
            goto peso;
        }
        else
        {
            media = (prova*(pesop/10))+(quiz*(pesoq/10))+(trab*(pesot/10));
            if (media>=7.0)
            {
                printf("Parabéns, você foi aprovado nesta matéria com média %f.2\n", media);
            }
            else
            {            
                if (media<7.0 && media>=5.0)
                {
                    printf("Sua média não alcancou o esperado, mas você ainda tem chances no exame %f.2\n", media);
                }
                else
                {
                    printf("Infelizmente sua média não satisfez o minimo, você foi reprovado nesta matéria %f.2\n", media);
                }
            }
        }
        printf("Gostaria de continuar utilizando o programa?\n");
        printf("[0]Sim");
        printf("[1]Não");
        scanf("%d",&quest);        
        printf("Obrigado por utilizar nosso programa de média ponderada, até a próxima!");
    }
}
 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

você tem um scanf sem o &

scanf("%f",pesot);

Tenta fazer o código enxuto primeiro, depois implementa com os while etc...

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

void main()
{
    float prova=5, quiz=6, trab=8, pesop=0, pesoq=0, pesot=0, pesototal=0, media=0;
        pesop = 3;
        pesoq = 5;
        pesot = 2;
        pesototal = pesop + pesoq + pesot;        
        
        if (pesototal!=10)
        {
            printf("Os pesos colocados não correspondem a uma média que vale 10 pontos, favor corrija-os\n\n\n");
        }
        else
        {
            media = (prova*(pesop/10))+(quiz*(pesoq/10))+(trab*(pesot/10));
            if (media>=7.0)
            {
                printf("Parabéns, você foi aprovado nesta matéria com média %f.2\n", media);
            }
            else
            {            
                if (media < 7.0 && media >= 5.0)
                {
                    printf("Sua média não alcancou o esperado, mas você ainda tem chances no exame %f.2\n", media);
                }
                else
                {
                    printf("Infelizmente sua média não satisfez o minimo, você foi reprovado nesta matéria %f.2\n", media);
                }
            }
        }
}

 

Link para o comentário
Compartilhar em outros sites

  • 0
1 hora atrás, Thiago André Cardoso disse:

você tem um scanf sem o &

scanf("%f",pesot);

Tenta fazer o código enxuto primeiro, depois implementa com os while etc...


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

void main()
{
    float prova=5, quiz=6, trab=8, pesop=0, pesoq=0, pesot=0, pesototal=0, media=0;
        pesop = 3;
        pesoq = 5;
        pesot = 2;
        pesototal = pesop + pesoq + pesot;        
        
        if (pesototal!=10)
        {
            printf("Os pesos colocados não correspondem a uma média que vale 10 pontos, favor corrija-os\n\n\n");
        }
        else
        {
            media = (prova*(pesop/10))+(quiz*(pesoq/10))+(trab*(pesot/10));
            if (media>=7.0)
            {
                printf("Parabéns, você foi aprovado nesta matéria com média %f.2\n", media);
            }
            else
            {            
                if (media < 7.0 && media >= 5.0)
                {
                    printf("Sua média não alcancou o esperado, mas você ainda tem chances no exame %f.2\n", media);
                }
                else
                {
                    printf("Infelizmente sua média não satisfez o minimo, você foi reprovado nesta matéria %f.2\n", media);
                }
            }
        }
}

 

Muito obrigado @Thiago André Cardoso, eu não tinha visto isso e tava me matando aqui pra achar o erro! Você fez o dia de um estudante melhor!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...