[PAT解题报告] Dating
简单题,给定两个字符串,最先同一个位置共同出现的A-G之间的字母代表星期几。接着最先共同位置出现的0..9或者A-N之间的字符表示时间的小时。再给两个字符串,最先共同位置同时出现的字母,位置表示时间的分钟,最后输出星期几个,几点几分,作为约会时间。
应该没有什么坑。
直接做就可以。
#include <cstdio> #include <cstring> #include <string> #include <cctype> using namespace std; const char *week[] = {"MON", "TUE", "WED", "THU", "FRI" , "SAT" , "SUN"}; char s1[100], s2[100]; bool in1(char c) { return ((c >= 'A') && (c <= 'G')); } bool in2(char c) { return ((c >= '0') && (c <= '9')) || ((c >= 'A') && (c <= 'N')); } bool in3(char c) { return isalpha(c); } int main() { int i; scanf("%s%s",s1,s2); for (i = 0; (!in1(s1[i])) || (s1[i] != s2[i]);++i) ; printf("%s",week[s1[i] - 'A']); for (++i; (!in2(s1[i])) || (s1[i] != s2[i]); ++i) ; printf(" %02d", isdigit(s1[i])?(s1[i] - '0'):(s1[i] - 'A' + 10)); scanf("%s%s",s1,s2); for (i = 0; (!in3(s1[i])) || (s1[i] != s2[i]);++i) ; printf(":%02d\n",i); return 0; }http://www.patest.cn/contests/pat-a-practise/1061