Корректное отображение часов и минут - C (СИ)
Формулировка задачи:
Сейчас время отображается в минутах(допустим 145 минут). Можно как-то сделать, что отдельно часы и отдельно минуты отображались?
float ave_speed = 760; for(i=0;i<3;i++) { time = mas[i].distance_km/ave_speed; time_2 = time*60; printf("\n\nПерелет в %s займет %.1f минут\n", mas[i].destination, time_3); }
Решение задачи: «Корректное отображение часов и минут»
textual
Листинг программы
float time = 0; float ave_speed = 760; float minutes = 0; int hours = 0; int time_2 = 0; for(i=0;i<3;i++) { time = mas[i].distance_km/ave_speed; minutes = time*60; for (j = 60; j < minutes; j += 60) { hours++; } time_2 = minutes - (60 * hours); printf("\n\nПерелет в %s займет %d часа(-ов) %d минут(-ы)\n", mas[i].destination, hours, time_2); }
Объяснение кода листинга программы
- В первой строке объявляются переменные:
- time - для хранения времени в секундах;
- ave_speed - для хранения средней скорости в км/ч;
- minutes - для хранения количества минут;
- hours - для хранения количества часов;
- time_2 - для хранения времени в минутах.
- В цикле for перебираются элементы массива mas (предположительно это массив структур), при этом инициализируется переменная time как отношение расстояния в километрах к средней скорости.
- В каждой итерации цикла значение переменной time умножается на 60 и сохраняется в переменную minutes.
- В цикле for, который находится внутри предыдущего, значение переменной minutes вычитается из 60 по мере прохождения каждой минуты, при этом переменная hours увеличивается на единицу. Таким образом, в переменной hours хранится количество полных часов.
- Переменная time_2 инициализируется как разница между количеством минут и количеством полных часов, умноженным на 60.
- Выводится сообщение с информацией о перелете, включающее название места назначения, количество полных часов и количество минут, не вошедших в полные часы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д