Ir ao conteúdo
  • Cadastre-se
Paulo Moraes da Silva

Calculadora simples não funciona

Recommended Posts

Prezados, boa noite!

O programa abaixo não funciona direito. Se alguém puder me ajudar eu agradeceria muito.

#include <stdio.h>
#include <stdlib.h>
#include <locale>
int main (){
    setlocale(LC_ALL,"Portuguese");
    int a, b, c, resultado;
    printf("Calculadora simples. Escolha a opção:\n 1 - Soma de 2 números.\n 2 - Diferença entre 2 números.\n 3 - Produto entre 2 números.\n 4 - Divisão entre 2 números.\n ");
    scanf("%d", a);
    switch (a){
        case 1:
            printf("Digite o primeiro número para soma");
            scanf("%d", &b);
            printf("Digite o segundo número para soma");
            scanf("%d", &c);
            resultado = b+c;
            printf("O resultado é: %d", resultado);
        case 2:
            printf("Digite o primeiro número para diferença");
            scanf("%d", &b);
            printf("Digite o segundo número para diferença");
            scanf("%d", &c);
            if(b>c){
                resultado = b-c;
                printf("O resultado é: %d", resultado);
            }
            else if(c>b){
                resultado = c-b;
                printf("O resultado é: %d", resultado);
            }
            else{
                resultado = b-c;
                printf("O resultado é: %d", resultado);
            }
        case 3:
            printf("Digite o primeiro número para multiplicação");
            scanf("%d", &b);
            printf("Digite o segundo número para multiplicação");
            scanf("%d", &c);
            resultado = b*c;
            printf("O resultado é: %d", resultado);
        case 4:
            printf("Digite o primeiro número para divisão");
            scanf("%d", &b);
            printf("Digite o segundo número para divisão");
            scanf("%d", &c);
            if(c != 0){
                resultado = b/c;
                printf("O resultado é: %d", resultado);
            }
            else{
                printf("O denominador deve ser maior que zero.\n");
            }
    }
    
    system("pause");
    return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas!

 

Você está usando a biblioteca do C++ <locale> ao invés da <locale.h> do C. Tente a solução do colega acima, caso não resolva poste um feedback.

 

Ah, mais uma coisa: Os case's do seu switch() não possuem uma parada. Ou seja: Ele irá executar a opção 1, depois a 2, etc. No fim de cada bloco case n: use a instrução break; isso irá fazer o laço switch() parar e prosseguir logo após. Caso queria que continue, utilize a instrução continue;

case 1:
{
	//codigo; 
	break;
}

case n:
{
	//codigo; 
	continue;
}

case default:
{
	printf("Nada a fazer. Saindo...\n");
	break;
}

 

Material de estudo:

[1] - http://www.inf.pucrs.br/manssour/LinguagemC++/

[2] - http://www.programiz.com/cpp-programming

[3] - http://www.cplusplus.com/doc/tutorial/

[4] - http://en.cppreference.com/w/

 

[]'s

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

×