炎黄子孙 发表于 2020-7-13 13:08:20

以 hh: mm: ss 的形式给出同一天的两个时刻,打印出这两个时刻之间的秒数。以字符...

以 hh: mm: ss 的形式给出同一天的两个时刻,打印出这两个时刻之间的秒数。以字符串的形式输入hh:mm:ss(C语言代码)
实例:
输入
12:00:00
17:00:00
输出
18000
实例2
输入
23:59:59
00:00:00
输出
86399

sunrise085 发表于 2020-7-13 13:21:34

本帖最后由 sunrise085 于 2020-7-13 13:28 编辑

先写一个简单的,没有任何容错的措施。需要输入者自己保证输入的是正确的时间。
注意:冒号是引文的冒号
# include<stdio.h>
int main()
{
    int h1,m1,s1,h2,m2,s2,s;
    scanf("%d:%d:%d",&h1,&m1,&s1);
    scanf("%d:%d:%d",&h2,&m2,&s2);
    s=s2-s1+(m2-m1)*60+(h2-h1)*3600;
    if (s<0)
      s=-s;
    printf("%d",s);
    return 0;
}

sunrise085 发表于 2020-7-13 13:27:40

确保输入的时分秒在正确范围,不会出现25:68:-2的情况
# include<stdio.h>
int main()
{
    int h1,m1,s1,h2,m2,s2,s;
    while(1)
    {
      scanf("%d:%d:%d",&h1,&m1,&s1);
      scanf("%d:%d:%d",&h2,&m2,&s2);
      //if...else...规定时分秒的范围,输入错误需要重新输入。
      if(h1>=0 && h1<24 && m1>=0 && m1<60 && s1>=0 && s1<60 && h2>=0 && h2<24 && m2>=0 && m2<60 && s2>=0 && s2<60)
            break;
      else
            printf("输入有误,请重新输入!");
    }
    s=s2-s1+(m2-m1)*60+(h2-h1)*3600;
    if (s<0)
      s=-s;
    printf("%d",s);
    return 0;
}

炎黄子孙 发表于 2020-7-13 13:34:05

#include<stdio.h>
int main(void) {
      int t, S, M, H,i;
      int a;
    for(i=0;i<2;i++)
    {
      for(i=0;i<6;i++)
    {
         scanf("%d",&a);
    }
               
    S = a*10+a;
    M = a*10+a;
    H = a*10+a;
    t=S+M*60+H*3600;
    printf("%d\n",t);

    }
   
            }
但是这个输出结果不对{:9_221:}

炎黄子孙 发表于 2020-7-13 13:36:24

有没有人可以帮帮我{:9_222:}

sunrise085 发表于 2020-7-13 14:29:55

炎黄子孙 发表于 2020-7-13 13:36
有没有人可以帮帮我

????没有看到我在2楼和3楼写的回答??

炎黄子孙 发表于 2020-7-13 15:19:17

刚刚看到,稍等我试一下

炎黄子孙 发表于 2020-7-13 15:21:26

对的,谢谢大佬{:5_109:},感谢啦{:7_123:}
页: [1]
查看完整版本: 以 hh: mm: ss 的形式给出同一天的两个时刻,打印出这两个时刻之间的秒数。以字符...