Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Operações

No exercício da calculadora, resolvi usar um "char" como método de escolha da operação , até ai tudo funciona direito, porém o resultado das operações estão erradas. Segue o código :

#include <stdio.h>

int main() { printf("Calculadora \n");

// numeros
float n1, n2;
// operação desejada
char operacaodesejada;
// operações
float soma = (n1 + n2);
float subtracao = (n1 - n2);
float divisao = (n1 / n2);
float multiplicacao = (n1 * n2);


printf("Digite o primeiro numero: \n");
scanf("%f", &n1);
printf("Digite o segundo numero: \n");
scanf("%f", &n2);
printf("Digite\n + para soma \n - para subtracao \n * para multiplicacao \n / para divisao");
scanf(" %c", &operacaodesejada);

if(operacaodesejada == '+'){
    printf("voce escolheu soma\n");
    printf("\n Resultado: %f", soma);
}else if(operacaodesejada == '-'){
        printf("voce escolheu subtracao\n");
    printf("\n Resultado: %f", subtracao);
}else if(operacaodesejada == '*'){
            printf("voce escolheu multiplicacao\n");
    printf("\n Resultado: %f", multiplicacao);
}else if(operacaodesejada == '/'){
    printf("voce escolheu divisao\n");
    printf("\n Resultado: %f", divisao);
}else{
    printf("\n Entre com uma operacao valida");
}

}

2 respostas

Nesse ponto:

scanf(" %c", &operacaodesejada);

parece haver um espaço no scan. Não tenho como compilar e testar aqui agora, mas acredito que esse espaço interfira na leitura do valor do char.

solução!

Fiz algumas alterações no códgo e funcionou, porem se eu tirar aquele espaço do " %c", o código buga, Então deixei assim mesmo.

#include <stdio.h>

int main() {

 printf("Calculadora \n");

// numeros
float n1, n2;
// operação desejada
char operacaodesejada;
// operações
float soma;
float subtracao;
float divisao;
float multiplicacao;


printf("Digite o primeiro numero: \n");
scanf("%f", &n1);
printf("Digite o segundo numero: \n");
scanf("%f", &n2);
printf("Digite\n + para soma \n - para subtracao \n * para multiplicacao \n / para divisao");
scanf(" %c", &operacaodesejada);

if(operacaodesejada == '+'){
    printf("voce escolheu soma\n");
    soma = (n1 + n2);
    printf("\n Resultado: %.2f", soma);
}else if(operacaodesejada == '-'){
        printf("voce escolheu subtracao\n");
        subtracao = (n1 - n2);
    printf("\n Resultado: %.2f", subtracao);
}else if(operacaodesejada == '*'){
            printf("voce escolheu multiplicacao\n");
            multiplicacao = (n1 * n2);
    printf("\n Resultado: %.2f", multiplicacao);
}else if(operacaodesejada == '/'){
    printf("voce escolheu divisao\n");
    divisao = (n1 / n2);
    printf("\n Resultado: %.2f", divisao);
}else{
    printf("\n Entre com uma operacao valida");
}
     return 0;
}