Ir ao conteúdo
  • Cadastre-se

C++ Programa para executar 4 operações básicas com dois valores dados pelo usuário


Posts recomendados

Boa noite programadores.

 

O programa proposto seria executar quatro operações básicas de uma calculadora com apenas dois valores dado pelo usuário.

Porém há um erro na minha programação onde não consigo digitar a operação escolhido pelo usuário. Segue a programação e o Erro.

Obrigado.

#include<stdio.h>

int main ()
{
    int x,y,resultado;
    char z;
    printf ("Maior valor: ");
    scanf ("%d",& x);
    printf ("Menor valor: ");
    scanf ("%d",& y);
    printf ("Indique a operacao:\nadicao +\nsubtracao -\nmultiplicacao *\ndivisao /\n ");    
    scanf ("%c",& z);
    
    switch ( z )
    {
        case '+' :
            resultado = x+y;
            printf ("Resultado: %c",resultado);
            break;
        case '-' :
            resultado= x-y;
            printf ("Resultado: %c",resultado);
            break;
        case '*' :
            resultado= x*y;
            printf ("Resultado: %c",resultado);
            break;
        case '/' :
            resultado=x/y;
            printf ("Resultado: %c", resultado);
            break;
    default:
            printf ("Invalido");
    }

}

Erro.png

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

@Vinicius Zancanari    seu código está certo,  mas quando você está pegando dados inteiro do teclado e em seguida vai pegar caracteres então existe lixo no buffer do teclado e precisa limpar o buffer antes de fazer a leitura, e para isso você pode usar esse  comando  :

fflush(stdin); 

assim a leitura sairá certa,   e  nos case na hora de imprimir você colocou   " %c "   para imprimir inteiro e o certo seria   " %d "  ,   então seu código com algumas modificações ficaria assim :

#include<stdio.h>
#include <conio.h>
int main ()
{
    int x,y,resultado;
    char z;
    printf ("Maior valor: ");
    scanf ("%d",& x);
    printf ("Menor valor: ");
    scanf ("%d",& y);
    printf ("Indique a operacao:\n  + adicao\n  - subtracao\n  * multiplicacao\n  / divisao /\n ");
    fflush(stdin);
    scanf("%c",&z);
    switch ( z )
    {
        case '+' :
            resultado = x+y;
            printf ("Resultado: %d",resultado);
            break;
        case '-' :
            resultado= x-y;
            printf ("Resultado: %d",resultado);
            break;
        case '*' :
            resultado= x*y;
            printf ("Resultado: %d",resultado);
            break;
        case '/' :
            resultado=x/y;
            printf ("Resultado: %d", resultado);
            break;
    default:
            printf ("Invalido");
    }

}

 

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...