0分代码求助C++

P5707 【深基2.例12】上学迟到

@[桐坂千座](/user/69851) 你第二个```while``t有改变吗?`
by Max6700 @ 2023-08-16 13:34:45


@[桐坂千座](/user/69851) ~~c,```while```看起来真难受~~,可以直接计算,用不着循环
by Max6700 @ 2023-08-16 13:36:31


@[Max6700](/user/935012) 第一个while是用来算已知距离与速度后需要的向上取整的时间,第二个while是在第一个while得到t后,判断“分”是否足够t去减,不够就去减1“时”来换取60“分”,直到能够减去的时候直接清空t来跳出循环。 第二while的判定条件是t大于0,而在else内,t会被直接赋予0,所以第二循环能被跳出。
by 桐坂千座 @ 2023-08-16 13:40:06


@[桐坂千座](/user/69851) 哦…… 这题可以直接算。。不需要循环,你先把走路时间算出来, 然后建俩变量存需要的小说和分钟(分开存) 然后分别处理小时和分钟,(就是加上扔垃圾后的小时和分钟) 还有,有可能会从昨天出发,要考虑这种情况 注意前导零 输出
by Max6700 @ 2023-08-16 13:53:10


@[Max6700](/user/935012) 第一循环算的就是走路时间,向上取整的走路时间,hh代表“时”,mm代表“分”。 有t、hh和mm,且知道其中有10分钟要拿出来丢垃圾,所以hh被赋初值7,mm被赋值50,代表至少要在7点50前出发。 以以上为前提,一旦t超过mm,mm就会加60,hh会减1。如果在减去1之前hh已经为0点,则hh会先赋值为24点再减去1以代表前一天。直到mm大于t。这时候mm减去t就是最晚出去的分,hh为最晚出去的时,t也会被减为0跳出循环。 最后便是判定hh与mm的长度是否足够,为个位数便在输出前加0,为十位数则照常输出。
by 桐坂千座 @ 2023-08-16 14:01:45


|