#include <stdio.h>

void deltaHM(int *h, int *m, int hi, int mi, int hf, int mf) {
    // calculo
    *h = hf - hi; // diferenca normal
    *m = mf - mi; // sem preocupacao

    // ajuste minutos, se necessario
    if (*m < 0) { *m += 60; *h -= 1; }
    // ajuste horas, se necessario
    if (*h < 0) { *h += 24; }
    // ajuste caso especial
    if (*h == 0 && *m == 0) { *h = 24; }
}

int main(void) {
    int h, m;
    deltaHM(&h, &m, 7, 8, 9, 10); printf("7 8 9 10 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 7, 7, 7, 7); printf("7 7 7 7 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 7, 10, 8, 9); printf("7 10 8 9 ==> %dhr e %dmin\n", h, m);
    
    deltaHM(&h, &m, 7, 7, 7, 6); printf("7 7 7 6 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 7, 7, 7, 8); printf("7 7 7 8 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 7, 7, 6, 7); printf("7 7 6 7 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 7, 7, 8, 7); printf("7 7 8 7 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 7, 6, 7, 7); printf("7 6 7 7 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 7, 8, 7, 7); printf("7 8 7 7 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 6, 7, 7, 7); printf("6 7 7 7 ==> %dhr e %dmin\n", h, m);
    deltaHM(&h, &m, 8, 7, 7, 7); printf("8 7 7 7 ==> %dhr e %dmin\n", h, m);

    return 0;
}
