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?