Ir ao conteúdo
  • Cadastre-se
Leonardocdd

C++ (bug no compilador)

Recommended Posts

Boa tarde!

 

Pessoal,

 

Estou com o seguinte problema, ao compilar o código abaixo a variável i_idoso mesmo você digitando zero na entrada ja começa com o valor 1.

Alguém sabe me dizer o que pode estar causando este erro???

{
    while(true)
    {
    scanf ("%d",&idoso);        
    scanf ("%d",&meiaentrada);
    scanf ("%d",&comum);
            int i_idoso, i_meia, i_comum;
            int saldo, total;
            i_idoso+=idoso;
            i_meia+=meiaentrada;
            i_comum+=comum;
            total+=idoso+meiaentrada+comum;
            printf ("\n Ingressos Vendidos: %d ",total);
            printf ("\n Ingressos Vendidos idoso %d ",i_idoso);
            printf ("\n Ingressos Vendidos Meia: %d ",i_meia);
            printf ("\n Ingressos Vendidos Comum: %d ",i_comum);
            saldo=(idoso*0)+(meiaentrada*13)+(comum*26);
            printf ("\n Saldo: R$%d,00",saldo);      

    }
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! tente inicializar suas variáveis i_idoso, i_meia e i_comum.

 

Não sei se há diferença do C para o C++ quanto a este caso em específico (acredito que não) mas em C uma variável declarada dentro de um bloco são da classe auto, que são criadas em tempo de execução e por isso iniciam-se com o valor de lixo de memória, ou seja, um valor não conhecido previamente.

 

Fiz um teste aqui e deu certo;

 

            i_idoso = 0;
            i_meia = 0;
            i_comum = 0;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o valor que retorna no seu printf()?

 

while(true)
    {
    scanf ("%d",&idoso);
    scanf ("%d",&meiaentrada);
    scanf ("%d",&comum);
            int i_idoso, i_meia, i_comum;
            int saldo, total;

            i_idoso = 0;
            i_meia = 0;
            i_comum = 0;


            i_idoso+=idoso;
            i_meia+=meiaentrada;
            i_comum+=comum;
            total+=idoso+meiaentrada+comum;
            printf ("\n Ingressos Vendidos: %d ",total);
            printf ("\n Ingressos Vendidos idoso %d ",i_idoso);
            printf ("\n Ingressos Vendidos Meia: %d ",i_meia);
            printf ("\n Ingressos Vendidos Comum: %d ",i_comum);
            saldo=(idoso*0)+(meiaentrada*13)+(comum*26);
            printf ("\n Saldo: R$%d,00",saldo);

    }

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×