时间游戏(小时,分钟,秒)

时间:2015-11-17 15:47:16

标签: c

首先感谢收看。我试图输入(小时,分钟,秒,持续时间(秒)) 并将所有转换为总的到达时间。

当我输入这个数字时,我遇到了一个问题:“23 59 59 10801”。 我期待得到的是“到达时间 - > 3 0 0” 但实际上我一无所获。

(其他每个正数都很好......) 感谢您的帮助,对不起,如果我的代码完全混乱。 :)

int h = 0, m = 0, s = 0, time = 0, ih = 0, im = 0, is = 0;

printf("please enter 4 digits\n");
scanf("%d %d %d %d", &h, &m, &s, &time);

if ((((h<=23)&&(h>0)) && ((m<=59) && (m>0)) && ((s<=59) && (s>0))) && (time > 0))
{
    //  hour loop

    while (time >= 3600) {
        ++ih;
        time = (time - 3600);

        //  minute loop
        while ((time < 3600) && (time != 0)) {
            ++im;
            time = (time - 60);

            //  second loop
            while ((time <= 60) && (time != 0)) {
                ++is;
                time = (time - 1);
            }
        }
    }

    h = (h + ih);
    m = (m + im);
    s = (s + is);

    if (h >= 24) {
        h = ((h * 0) + ih-1);
    }

    if (m = 60) {
        m = (m * 0);
        ++h;
    }

    if (s = 60) {
        s = (s * 0);
        ++m;
    }

    printf("\nwe are happy to annonce that:\n\nyour arival time will be at : %d %d %d\n\n\nhave a nice day!\n\n\n\n", h, m, s);

}
else printf("\nwrong value my friend!\n\n");

return 0;

}

1 个答案:

答案 0 :(得分:3)

if (m = 60)m设置为60并且为真。你想写if (m == 60)

if (s = 60)

的情况相同