Перевод часов в минуты - C (СИ) (72400)
Формулировка задачи:
Здравствуйте. Привожу само задание.
Написать программу, производящую перевод часов и минут в минуты. Входные данные вводятся в виде числа с плавающей точкой, где целая часть – количество часов, а дробная – количество минут. Ниже приведен рекомендуемый вид экрана.
Введите время (чч.мм) : 12.45
12 часов 45 минут это 765 минут
Сам работающий код у меня есть, но еще необходимо сделать проверку введенных данных. Тоесть если вводишь символ, то программа должна "ругаться на него" и предложить ввести данные еще раз.
проверку правильности я реализовал через "if (fractional <= 0) printf("invalid number! Try Again? (1 - Yes 2 - No) \n");". Но думаю что это не совсем правильно. еще есть вопрос как реализовать возможность ввести данные еще раз, в случае правильного и неправильного ввода. тоесть когда высвечивается результат программа должна спросить, "хотите попробовать еще раз?" или вы хотите выйти" .
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <math.h> #include <conio.h> void main() { float time, fractional, integer; int x; AP: printf ("Please, enter time (hh.mm): "); scanf("%f", &time); fractional = modf(time, &integer); if (fractional <= 0) printf("invalid number! Try Again? (1 - Yes 2 - No) \n"); else printf("%.fh %.fm it's %.f minutes \n", integer, fractional * 100, integer * 60 + fractional * 100); }
Решение задачи: «Перевод часов в минуты»
textual
Листинг программы
#include <stdio.h> #include <ctype.h> #include <stdio.h> #include <math.h> #include <conio.h> int main() { double time, fractional, integer; for (;;) { printf("\nPlease, enter time (hh.mm): "); if (scanf_s("%lf", &time)) { if (time <= 0 || time > 23.59) { printf("Invalid Number!"); } else { fractional = modf(time, &integer); printf("%.lf h %.lf m it's %.lf minutes \n", integer, fractional * 100, integer * 60 + fractional * 100); } } else { printf("You Enter Letters!"); break; } } _getch(); return 0; }
Объяснение кода листинга программы
- Объявлены переменные: time, fractional, integer.
- В цикле for (;;) происходит получение времени от пользователя.
- С помощью функции scanf_s(
%lf
, &time) время считывается в переменную time. - Проверка времени на корректность введенных данных: если время меньше или равно 0, либо больше 23.59, выводится сообщение
Invalid Number!
. - В противном случае, время преобразуется в минуты с помощью функций modf(time, &integer) и printf(
%.lf h %.lf m it's %.lf minutes
, integer, fractional100, integer60+fractional*100). - Если пользователь ввел некорректные данные (буквы), программа выводит сообщение
You Enter Letters!
и завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д