Загрузка урока...
Тип float В прошлом уроке мы вывели таблицу перевода температур, но у нее были две проблемы: Значения в столбцах выглядели неровно. Расчеты были неточными, потому что использовались только целые числа (int). В этом уроке исправим обе.
Формула перевода:
C = (5 / 9) * (F - 32)Для F = 0 правильный результат примерно -17.78, а не -17. Чтобы получить дробную часть, нужно перейти на тип float.
Меняем тип рабочих переменных:
float fahr;
float celsius;
float lower;
float upper;
float step;Значения тоже удобно записывать как дробные:
lower = 0.0;
upper = 300.0;
step = 20.0;
fahr = lower;С float можно безопасно использовать дробные коэффициенты:
celsius = (5.0 / 9.0) * (fahr - 32.0);Так выражение считается в вещественной арифметике, без потери точности на целочисленном делении.
Для float в printf() используем %f. Можно сразу задать ширину поля и количество знаков после запятой:
printf("%6.2f : %6.2f\n", fahr, celsius);Значение 6 задает минимальную ширину поля.
Значение .2 задает два знака после запятой.
Спецификатор f указывает на вещественное число.
#include <stdio.h>
int main(void)
{
float fahr;
float celsius;
float lower;
float upper;
float step;
lower = 0.0;
upper = 300.0;
step = 20.0;
fahr = lower;
while (fahr <= upper) {
celsius = (5.0 / 9.0) * (fahr - 32.0);
printf("%6.2f : %6.2f\n", fahr, celsius);
fahr = fahr + step;
}
return 0;
}Тип float нужен, когда важна дробная часть.
Формат %6.2f помогает выравнивать таблицу и ограничивать число знаков после запятой.
Вычисления с float дают более точный результат, чем с int в этой задаче.
Напишите программу km_to_mi, которая конвертирует километры в мили. Используйте такую формулу: мили = километры x 0.621.
Ваша программа должна использовать тип float и выводить значения в таком виде:
0.00 : 0.00
20.00 : 12.42
40.00 : 24.84
60.00 : 37.26
80.00 : 49.68
100.00 : 62.10
120.00 : 74.52
140.00 : 86.94
160.00 : 99.36
180.00 : 111.78
200.00 : 124.20
220.00 : 136.62
240.00 : 149.04
260.00 : 161.46
280.00 : 173.88
300.00 : 186.30В этом материале нет файлов для просмотра.