PAT 乙级 1014 福尔摩斯的约会
题目
输入样例:
3485djDkxh4hhGE
2984akDfkkkkggEdsb
s&hgsfdk
d&Hyscvnm
输出样例:
THU 14:04
原题链接
分析:
主要是这道题的题目不太好理解,就着题目说的在结合样例猜出来星期是第一对字符串的第一对相同的字母,且范围为A-G,小时为第一对字符串中接着星期之后的第一对相同字母,范围为0-9 A-N,分钟为第二对字符串中第一对相同字符出现的位置。
注意:
星期的缩写不要拼错,不确定怎么写的话百度查一下。。我做的时候星期三 缩写我记得是WEN啊,结果竟然是WED,白白的把代码从头到尾检查了好多遍。。。无奈
我的代码:
#include<stdio.h>
#include<string.h>
int main()
{
char shuzu[4][70];
for (int i = 0; i < 4; i++) {
scanf("%s", shuzu[i]);
}
int changdu[4];
for (int i = 0; i < 4; i++) {
changdu[i] = strlen(shuzu[i]);
}
int a, b, c;
int j = 0;
//星期
for (; j < strlen(shuzu[0])&&j<strlen(shuzu[1]); j++) {
if (shuzu[0][j] == shuzu[1][j]) {
if (shuzu[0][j] >= 'A' && shuzu[0][j] <= 'G') {
a = shuzu[0][j] - 'A';
break;
}
}
}
j++;
//小时
for (; j < strlen(shuzu[0]) && j < strlen(shuzu[1]); j++) {
if (shuzu[0][j] == shuzu[1][j]) {
if (shuzu[0][j] >= '0' && shuzu[1][j] <= '9') {
b = shuzu[0][j] - '0';
break;
}
else if (shuzu[0][j] >= 'A' && shuzu[0][j] <= 'N') {
b = shuzu[0][j] - 'A' + 10;
break;
}
}
}
//分钟
for (int i = 0; i < strlen(shuzu[2]) && i< strlen(shuzu[3]); i++) {
if (shuzu[2][i] == shuzu[3][i]) {
if ((shuzu[2][i] >= 'A' && shuzu[2][i] <= 'Z') || (shuzu[2][i] >= 'a' && shuzu[2][i] <= 'z')) {
c = i;
break;
}
}
}
char xingqishuzu[7][5] = { "MON","TUE","WED","THU","FRI","SAT","SUN" };
printf("%s %02d:%02d", xingqishuzu[a], b, c);
return 0;
}