A1061 Dating

这个题目不难,但是要注意的点还是挺多的,主要就是注意找到相同的字符,记录变量后要及时break,另外有个i++需要注意,在下面代码注释有说到。

#include <stdio.h>
#include <string.h>

char week[][5]={"MON","TUE","WED","THU","FRI","SAT","SUN"};
int main(int argc, char const *argv[])
{
	char s1[65],s2[65],s3[65],s4[65];
	scanf("%s%s%s%s",s1,s2,s3,s4);
	int len1 = strlen(s1);
	int len2 = strlen(s2);
	int len3 = strlen(s3);
	int len4 = strlen(s4);
	int day = -1,h = -1,m = -1;//记录三个变量
	for(int i=0;i<len1&&i<len2;i++){
		if(s1[i]==s2[i] && s1[i]>='A'&&s1[i]<='G'&&day==-1){
			day = s1[i]-'A';
			i++;	//为了避免下面的if跟这个if操作的是同一个i
		}
		if(day>=0 &&s1[i]==s2[i]){
			if(s1[i]>='0'&&s1[i]<='9')h = s1[i]-'0';
			else if(s1[i]>='A'&&s1[i]<='N')h = 10+s1[i]-'A';
		}
		if(h>=0)break;//找到了就break,避免后面的覆盖已经找到的,下同
	}
	for(int i=0;i<len3&&i<len4;i++){
		if(s3[i]==s4[i]){
			if((s3[i]>='A'&&s3[i]<='Z')||(s3[i]>='a'&&s3[i]<='z')){
				m = i;
				break;
			}
		}
	}
	printf("%s %02d:%02d",week[day],h,m);//按格式输出
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43108373/article/details/84205694