Chinaunix首页 | 论坛 | 博客
  • 博客访问: 571033
  • 博文数量: 50
  • 博客积分: 571
  • 博客等级: 中士
  • 技术积分: 1162
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-20 14:01
个人简介

希望成为一个有思想,有信仰的程序设计师。

文章分类

全部博文(50)

文章存档

2016年(2)

2015年(2)

2014年(13)

2013年(10)

2012年(23)

分类: C/C++

2012-06-02 14:18:26

输入

输入的第一行包括一个整数T(T ≤ 30),表示测试数据的组数;接下去的T行每行包括一个时间,表示两地中的一个地方同学报出的整点的时间,表示成“H:M”的形式,其中H是小时(0 ≤ H < 24,且当H小于10的时候可以表示成1位或者2位的形式)、M是分钟(0 ≤ M < 60,且当M小于10的时候可以表示成1位或者2位)。

输出

每个测试数据输出一行,当是整点对时时,输出时区转换后的小时结果;当不是整点对时时,输出0。

样例输入

4

12:00

01:01

3:00

00:00

样例输出

24

0

15

12

 

这个题目主要就是考察字符串的处理,还有这个题目有一个要注意的地方就是小于十的的时候既可以用两个字符表示也可以用一个字符表示。一开始我在这个地方没有注意,结果WA了一次。

代码如下:

#include
#include
#include

int del_time(char *str);

int main()
{
      int N;
      int i,j,k;
      int num;
      char time_str[10];
      scanf("%d",&N);
      for(i=0;i            scanf("%s",time_str);
            num=del_time(time_str);
            if (num==100){
                  num=0;
            }
            printf("%d\n",num);
      }
      return 0;
}
int del_time(char *str)
{
      int len=strlen(str);
      int i=0;
      int num=0;       
      while (str[i]!=':'){
            num=(str[i]-'0')+10*num;
            i++;
      }
      for(i++;i            if((str[i]-'0')) break;
      }
      if(i!=len) return 100;
      num+=12;
      if(num>24) num-=24;
      return num;       
}

阅读(883) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~