首先感谢收看。我试图输入(小时,分钟,秒,持续时间(秒)) 并将所有转换为总的到达时间。
当我输入这个数字时,我遇到了一个问题:“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;
}
答案 0 :(得分:3)
if (m = 60)
将m
设置为60
并且为真。你想写if (m == 60)
。
if (s = 60)