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

Calculadora em C!


Johan

Pergunta

2) Faça um programa que implemente uma máquina de calcular simples com operações +, -, *, / e %, através da leitura de dois operandos numéricos e do operador (tipo caracter), no formato: n1,n2 e operacao. A operação de resto somente pode ser efetuada com números inteiros. Utilize as letras X ou x para encerrar a calculadora.

Então, estou com dificuldade para "entender", sacar a lógica. Comecei meu curso recentemente, se possível alguém poderia apontar o meu erro e tentar explicar?

Meu código-fonte:

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

void main(){    
    char operacao;
    float n1, n2, total;
    int int_n1, int_n2, resto;
    int_n1 = n1;
    int_n2 = n2;

    //Internacionalização
    setlocale(LC_ALL, "Portuguese");
    
           //Começo do laço.
do{
    printf("Informe o tipo de operação: \n");
    scanf(" %c", &operacao);
    
    
         //Interruptor e casos
    switch(operacao){
        case ('+'):
            printf("Informe o primeiro número: \n");
            scanf(" %f", &n1);
            printf("Informe o segundo número: \n");
            scanf(" %f", &n2);
            total = n1 + n2;
            printf("O total da adição é: %2.f \n", total);
            break;
            
        case ('-'):
            printf("Informe o primeiro número: \n");
            scanf("%f", &n1);
            printf("Informe o segundo número: \n");
            scanf("%f", &n2);
            total = n1 - n2;
            printf("O total da subtração é: %2.f \n", total);
            break;
        
        case ('*'):
            printf("Informe o primeiro número: \n");
            scanf("%f", &n1);
            printf("Informe o segundo número: \n");
            scanf("%f", &n2);
            total = n1 * n2;
            printf("O total da multiplicação é: %2.f \n", total);
            break;
            
        case ('/'):
            printf("Informe o primeiro número: \n");
            scanf("%f", &n1);
            printf("Informe o segundo número: \n");
            scanf("%f", &n2);
            total = n1/n2;
            printf("O total da divisão é: %2.f \n", total);
            break;
        
                //Acredito que meu primeiro erro foi aqui. 
                //Quero que ele se transforme em números inteiros para achar o resto...
        case ('%'):
            printf("Informe o primeiro número: \n");
            scanf("%d", &int_n1);
            printf("Informe o segundo número: \n");
            scanf("%d", &int_n2);
            printf("O total do resto é: %2.d \n", total = int_n1 % int_n2);    
            break;
            
            case ('x'):
                printf("Fora do sistema");
            
            default:
                printf("saída do sistema \n");
                break;        
    }

}while(n1 != 'x'); //Fim do laço

// Não sei a onde encaixar isso, se é dentro do laço, ou dentro do switch, ou fora dos dois.   
  
if(n1 == int_n1) && (n2 == int_n2);{
printf("os n são inteiros")
  }
else{
printf("Os n tem casas decimais");
  }    
            
}

Grato desde já!

Editado por Johan
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Boas,

Porque é que no início do código estás a atribuir o valor das variáveis float, às variáveis do tipo int?

Na instrução if tens dois erros um é que as comparações tem de estar envolvidas em parêntesis e outro é o ponto e vírgula no final das comparações do if que terminam a declaração inviabilizando a continuidade.

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,3k
×
×
  • Criar Novo...