PAT B1014/A1061 福尔摩斯的约会

题目
这道题的题意真的描述的很不清楚,首先DAY只能是A~G,不能用A
~Z来判断,其次是HH的值,分为两种一种是A-N,另一种是0-9,而且要注意两点,一个是HH的判断紧接着DAY不能从头再来,二是找到HH的值后一定要break,否则就会像我一样,这道题大概做了1个多小时,提交了10遍左右,最后MM的值是在第二对字符串中获得的,非常要注意这道题里面的一对的意思是两个字符串的同一位置处相同,不是让你用两个for循环查找,真的太坑了!!!

using namespace std;
#include<bits/stdc++.h>
//注意题目表意不明,一对的意思是同一位置下,同时结束条件是小于两对中较小的那对
int main(){
	char a[4][65];
	int d=0,h=0,m=0;
	int i,j;
	for(i=0;i<4;i++) scanf("%s",a[i]);
	int len1=strlen(a[0]),len2=strlen(a[1]);
	bool flag=false;
	for(i=0;i<len1 && i<len2;i++){
		if(a[0][i] == a[1][i]){
			if(!flag){
				if(a[0][i]>='A' && a[0][i]<='G'){//只能是A~G,不能用A~Z 
					d=a[0][i]-'A';
					flag=true;
				}	
			}
			else{
				if(a[0][i]>='A' && a[0][i]<='N'){//只能是A~N,不能用A~Z 
					h=a[0][i]-'A'+10;
					break;//important!
				}
				else if(a[0][i]>='0' &&a[0][i]<='9'){
					h=a[0][i]-'0';
					break;//important!
				}
			}	 
		}	
	}
	int len3=strlen(a[2]),len4=strlen(a[3]);
	for(i=0;i<len3 && i<len4;i++){ 
		if(a[2][i] == a[3][i]){
			if((a[2][i]>='A' && a[2][i]<='Z') || (a[2][i]>='a' && a[2][i]<='z')){
				m=i;
				break;
			}
		}
	}
	char day[7][4]={"MON","TUE","WED","THU","FRI","SAT","SUN"};
	printf("%s %02d:%02d",day[d],h,m);
	return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值