Я пытаюсь конвертировать в часы и минуты, начиная со времени (записанного в массиве), в минуты с полуночи. Но я вижу, что есть ошибка округления. Например, время отправления 583 (минуты с полуночи), подсчет времени и минут примерно так:
583/60 = 9.716666
Я принимаю целую часть (9) часов. Затем я беру десятичную часть и делаю это:
0.716666 * 60 = 42.99996
Минуты будут 43, но, к сожалению, я не могу экстраполировать это значение, округляя его.
Какая-то идея?
#include <stdio.h>
#define SIZE (int)sizeof(departures) / sizeof(departures[0])
int main(void) {
int hours, minutes, mmin, fh, fm;
float res;
int departures[] = {480, 583, 679, 767, 840, 945, 1140, 1305};
int Arrivals[] = {616, 712, 91, 900, 968, 1075, 1280, 1438};
for(int i = 0; i < SIZE; i++) {
res = (float)departures[i] / 60;
fh = departures[i] / 60;
fm = ((float)departures[i] / 60 - fh) * 60;
printf("%d) %d:%d (%f)\n", i, fh, fm, res);
}
return 0;
}