首页 > 代码库 > *1014. 福尔摩斯的约会

*1014. 福尔摩斯的约会

 1 /* 2  * Main.c 3  * 1014. 福尔摩斯的约会 4  *  Created on: 2014年9月1日 5  *      Author: Boomkeeper 6  *****部分通过********* 7  */ 8  9 #include <stdio.h>10 #include <string.h>11 12 /*13  * 找到“DAY HH:MM”中的“DAY”和“HH”14  */15 void find_day_hour(const char str1[],const char str2[]){16 17     int len1 = strlen(str1);18     int len2 = strlen(str2);19     int i;20     char tempDay,tempHour;//存放DAY和HH21     char hour[24] = {0,1,2,3,4,5,6,7,8,9,22             A,B,C,D,E,F,G,H,I,J,K,L,M,N};23 24     //找到DAY25     for (i = 0; i < (len1 < len2 ? len1 : len2); i++) {26         if((str1[i] == str2[i]) && (str1[i]<=G && str1[i]>=A)){27                 tempDay = str2[i];28                 break;29                 }30     }31 32     //计算DAY并打印星期33     switch(tempDay){34         case A : printf("MON "); break;35         case B : printf("TUE "); break;36         case C : printf("WED "); break;37         case D : printf("THU "); break;38         case E : printf("FRI "); break;39         case F : printf("SAT "); break;40         case G : printf("SUN "); break;41     }42 43     //找到HH44     for (i+=1; i < (len1 < len2 ? len1 : len2); i++) {45         if((str1[i] == str2[i]) && ((str1[i]>=0 && str1[i]<=9) || (str1[i] >= A && str1[i] <= N))){46             tempHour = str2[i];47             break;48         }49     }50 51     //计算HH52     for(i=0;i<24;i++){53         if(hour[i] == tempHour){54             //打印小时55             printf("%02i:",i);56             break;57         }58     }59 }60 61 /*62  * 找到“DAY HH:MM”中的“MM”63  */64 void find_min(const char str3[],const char str4[]){65 66     int len3 = strlen(str3);67     int len4 = strlen(str4);68     int i;69 70     for(i = 0 ; i < (len3 < len4 ? len3 : len4);i++){71         if((str3[i]<=z && str3[i]>=a) && (str4[i]<=z && str4[i]>=a))72             if(str3[i] == str4[i])73                 break;74     }75 76     //打印分钟77     printf("%02i\n",i);78 }79 80 int main(void){81 82     char str1[60],str2[60],str3[60],str4[60];83 84     gets(str1);85     gets(str2);86     gets(str3);87     gets(str4);88 89     find_day_hour(str1,str2);90     find_min(str3,str4);91 92     return 0;93 }

 

这个题目折腾了一天,回想起来难度不是很大,还是得耐心下来,一个<=逻辑运算符一对花括号差点让我疯掉!

 

题目链接:

http://pat.zju.edu.cn/contests/pat-b-practise/1014

 

 

.

*1014. 福尔摩斯的约会