问题标题: 酷町堂:1504瞌睡虫

0
0
已解决
翟谦瑞
翟谦瑞
新手守护
新手守护
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    int a,b,c,d,e,f,g,h,i;
    scanf("%d:%d:%d",&a,&b,&c);
    scanf("%d:%d:%d",&d,&e,&f);
    g=d-a;
    h=e-b;
    i=f-c;
    if(i<0)
    {
        h--;
        i+=60;
    }
    if(h<0)
    {
        g--;
        h+=60;
    }
    if(g<0)
    {
        g+=24;
    }
    if(g%24<=10)
    {
        cout<<"0";
    }
    printf("%d:",g);
    if(h%60<=10)
    {
        cout<<"0";
    }
    printf("%d:",h);
    if(i%60<=10)
    {
        cout<<"0";
    }
    printf("%d",i);
    return 0;
}

 

翟谦瑞在2018-02-04 08:18:49追加了内容

80分

wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​


1
已采纳
方亦欧
方亦欧
新手光能
新手光能

这一题的简单思路:

1:判断醒来时的小时数(记为h2)与入睡时的小时数(记为h1)哪个大,如果h1大,将h2加上24;

if(h1>h2) h2+=24;

2:按照上面的思路,依次判断分钟和秒,处理方法基本相同。

3:输出。需要注意如果醒来时的小时数-入睡时的小时数<10,需要加上前缀0,分钟和秒也依次判断。

例:

 if(h2-h1<10)
        cout<<0<<h2-h1<<":";
 else cout<<h2-h1<<":";

另外,这一题有一个非常大的陷阱:如果入睡时刻和醒来时刻相同(如都为8:00:00),这是不能输出0,而是要注意到题目中的一句话:

小C睡觉时间最少为1秒,最多为24小时

所以,应该输出24小时啦。

方亦欧在2018-02-02 14:20:40追加了内容

(第二步没有写出代码,留给你自行思考吧)

0
0
我要回答