Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Utilizar do double como input

Tentei fazer com que a calculadora recebesse valores double, ao invés de int, conforme o seguinte código:

    int opcao;
    double valor1;
    double valor2;
    double resultado;

    printf("Escolha a operação: 1 = soma, 2 = subtração, 3 = divisão, 4 = multiplicação\n");
    scanf("%d", &opcao);
    printf("Digite o primeiro número\n");
    scanf("%f", &valor1);
    printf("Digite o segundo número\n");
    scanf("%f", &valor2);
//resto do código

Como podem ver, utilizei %f para representar o input do tipo double na função scanf(), assim como fazemos na função printf(), porém o compilador retorna a seguinte mensagem de erro:

calculadora.c: In function ‘main’:
calculadora.c:14:8: warning: format ‘%f’ expects argument of type ‘float *’, but argument 2 has type ‘double *’ [-Wformat=]
  scanf("%f", &valor1);
        ^
calculadora.c:16:8: warning: format ‘%f’ expects argument of type ‘float *’, but argument 2 has type ‘double *’ [-Wformat=]
  scanf("%f", &valor2);

Tentei refazer o código com a máscara %d para receber os dados e o compilador também não aceitou, apresentando a mesma mensagem de erro. Como faço então para criar um input com dados do tipo double?

1 resposta
solução!

Oi Natan, tudo bom?

Para o double, tente usar esse formato:

scanf("%lf",&valor1);

Na wikipedia: https://en.wikipedia.org/wiki/Scanf_format_string#Format_string_specifications

tem uma referencia legal sobre os tipos em c e como scanear e imprimir eles =)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software