Итак, я изучал программирование на c и купил книгу. В конце главы есть проблема:
написать программу, которая определяет пять целочисленных переменных и инициализирует их 1, 10, 100, 1000, 10000. Затем она печатает их на одной строке, разделенной пробелами, используя десятичный код преобразования (% d), и на строка вложенности с кодом преобразования с плавающей точкой (% f). Обратите внимание на различия между результатами. Как вы им объясняете?
Теперь мой вопрос: как использовать код преобразования с плавающей запятой для числа, определяемого как int?
Это то, что я написал до сих пор:
#include <stdio.h>
int main(void)
{
int one = 1;
int ten = 10;
int hundred = 100;
int thousand = 1000;
int tenThous = 100000;
printf("%d %d %d %d %d \n", one, ten, hundred, thousand, tenThous);
printf("%f %f %f %f %f \n", one, ten, hundred, thousand, tenThous);
return 0;
}
В том, как они описывают проблему, я думаю, что я должен использовать переменные типа int, которые я определил. Было бы легко создать новый набор чисел и объявить их как числа с плавающей точкой, но я не думаю, что это именно то, что они просят.
Сообщение об ошибке, которое я получаю при компиляции:
numPrint.c:12:33: warning: format specifies type 'double' but the argument has
type 'int' [-Wformat]
printf("%f %f %f %f %f \n", one, ten, hundred, thousand, tenThous);
~~ ^~~
%d
и он проходит через все переменные int, говоря, что формат указывает на 'double', а используемая переменная - 'int'
Есть ли способ сделать это?