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

Erro na execução do programa

Olá pessoal,

Uso o DEV C++ para compilar meus códigos e desconfio que o problema que estou tendo seja causado por algum bug, mas por via das dúvidas resolvi postar aqui para confirmar. O problema é o seguinte: consigo compilar o código abaixo tranquilamente e consigo escolher a opção na calculadora tranquilamente, mas quando digito o primeiro valor, o programa trava e aparece o erro "Calculadora.exe parou de funcionar". O que pode ter acontecido?

```#include

int main() {

// Define a operação da calculadora double op; printf("Digite um numero para utilizar a calculadora: "); printf("\n\n1 - Soma\n2 - Subtracao\n3 - Divisao\n4 - Multiplicacao\n\n"); scanf("%f", &op);

// Recebe os dois valores double n1, n2; printf("\nDigite o primeiro valor: "); scanf("%f", n1); printf("\nDigite o segundo valor: "); scanf("%f", n2);

// Faz as operações if(op==1) { double soma = (n1+n2); printf("\nA soma dos numeros resulta em %.0f.", soma); } else if(op==2) { double subtracao = (n1-n2); printf("\nA subtracao dos numeros resulta em %.0f.", subtracao); } else if(op==3) { double divisao = (n1/n2); printf("\nA divisao entre os numeros resulta em %.0f.", divisao); } else { double multiplicacao = (n1*n2); printf("\nA multiplicacao dos numeros resulta em %.0f.", multiplicacao); }

return 0;

}```

3 respostas

Segue o código com formatação correta:

#include <stdio.h>

int main() {

    // Define a operação da calculadora
    int op;
    printf("Digite um numero para utilizar a calculadora: ");
    printf("\n\n1 - Soma\n2 - Subtracao\n3 - Divisao\n4 - Multiplicacao\n\n");
    scanf("%d", &op);

    // Recebe os dois valores
    int n1, n2;
    printf("\nDigite o primeiro valor: ");
    scanf("%d", n1);
    printf("\nDigite o segundo valor: ");
    scanf("%d", n2);

    // Faz as operações
    if(op==1) {
        int soma = (n1+n2);
        printf("\nA soma dos numeros resulta em %d.", soma);
    }
    else if(op==2) {
        int subtracao = (n1-n2);
        printf("\nA subtracao dos numeros resulta em %d.", subtracao);
    }
    else if(op==3) {
        int divisao = (n1/n2);
        printf("\nA divisao entre os numeros resulta em %d.", divisao);
    }
    else {
        int multiplicacao = (n1*n2);
        printf("\nA multiplicacao dos numeros resulta em %d.", multiplicacao);
    }

return 0;

}
solução!

Olá Pedro,

Quando você utiliza a função scanf(...) você deve utilizar o operador & no segundo parâmetro pois a função precisa de um ponteiro para a variável onde ele vai armazenar os dados lidos.

Exemplo:

int n;
printf("\nDigite o primeiro valor: ");
scanf("%d", &n);

Nossa! Passou batido, nem tinha visto que deixei de colocar... Valeu pelo toque, Jeferson!