Программа, которая переводит градусы Кельвина в градусы Цельсия - C (СИ)
Формулировка задачи:
Напишите программу, которая бы переводила градусы Кельвина в градусы Цельсия и наоборот. Проверить введенные значения на отсутствие ошибок.
Решение задачи: «Программа, которая переводит градусы Кельвина в градусы Цельсия»
textual
Листинг программы
#include <stdbool.h> #include <stdio.h> #include <stdlib.h> const double ABS_ZERO = -273.15; const double ERROR = -300.0; double cel_to_kel(double cel) { if( cel < ABS_ZERO ) return ERROR; return cel - ABS_ZERO; } double kel_to_cel(double kel) { if( kel < 0.0 ) return ERROR; return kel + ABS_ZERO; } int main(int argc, char* argv[]) { double temp; char buf[10]; char scale; while( true ) { puts("Enter temperature"); fgets(buf, sizeof(buf), stdin); scale = toupper(buf[0]); if( scale != 'C' && scale != 'K' ) break; buf[0] = ' '; temp = atof(buf); if( temp == ERROR ) break; if( scale == 'C' ) { temp = cel_to_kel(temp); } else { temp = kel_to_cel(temp); } printf("Converted temperature = %0.2f\n", temp); } return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
для работы с булевыми значениями, для работы с вводом/выводом данных и для работы с числами с плавающей точкой. - Объявление констант: ABS_ZERO = -273.15 (абсолютная температура в Кельвинах при которой начинается отсчет в Цельсиях) и ERROR = -300.0 (значение, возвращаемое функцией при ошибке).
- Объявление функций: cel_to_kel(double cel) (переводит температуру из Цельсия в Кельвины) и kel_to_cel(double kel) (переводит температуру из Кельвина в Цельсии).
- Цикл while(true) для бесконечного выполнения программы, пока пользователь не введет неверное значение или не прервет выполнение программы.
- Ввод значения температуры с помощью функции fgets(buf, sizeof(buf), stdin) в буфер buf.
- Определение шкалы ввода температуры (C или K) с помощью функции toupper(buf[0]) и проверка на корректность введенного значения.
- Проверка на корректность введенного значения: если введено не число или некорректная шкала, то выход из цикла с помощью break.
- Выполнение перевода температуры в нужную систему с помощью функции cel_to_kel(temp) или kel_to_cel(temp) и сохранение результата в переменной temp.
- Вывод результата перевода с помощью функции printf(
Converted temperature = %0.2f\n
, temp). - Возврат 0 из функции main() означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д