Перевод времени из 24-часового формата в 12-й - C (СИ) (150315)
Формулировка задачи:
Пользователь вводит время в формате 24-х часов, программа переводит в 12-х часов. Помогите допилить.
Неправильно пишет в scanf и соответственно не хочет переводить поэтому
int _tmain(int argc, _TCHAR* argv[]) { setlocale(LC_ALL, "rus"); struct time { int hour; int minute; int second; }; time t1; printf("Введите время:(через точку)\n"); scanf("%d.%d.%d", &t1.hour, &t1.minute, &t1.second); if (t1.hour < 12) { printf("%d.%d.%d am", t1.hour, t1.minute, t1.second); } if (t1.hour>12) { printf("%d.%d.%d pm", (t1.hour-12), t1.minute, t1.second); } return 0; }
Решение задачи: «Перевод времени из 24-часового формата в 12-й»
textual
Листинг программы
#define TIME() if(t1.hour < 12){printf("%d.%d.%d am\n", t1.hour, t1.minute, t1.second);}if (t1.hour>12){ printf("%d.%d.%d pm\n", (t1.hour - 12), t1.minute, t1.second);} int _tmain(int argc, _TCHAR* argv[]) { setlocale(LC_ALL, "rus"); struct time { int hour; int minute; int second; }; struct time t1; printf("Введите время:(через точку)\n"); scanf("%d.%d.%d", &t1.hour, &t1.minute, &t1.second); TIME(); return 0; }
Объяснение кода листинга программы
- Объявлен макрос TIME.
- Если t1.hour меньше 12, то выводится время в формате am.
- Если t1.hour больше или равно 12, то выводится время в формате pm.
- Для времени после 12 часов из часа вычитается 12.
- Объявлена структура time.
- Объявлен экземпляр структуры time t1.
- Выводится приглашение для ввода времени.
- С помощью функции scanf вводятся значения дляhour, minute и second и сохраняются в соответствующих полях структуры t1.
- Вызывается макрос TIME.
- Программа возвращает 0, завершая свою работу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д