题目链接:https://www.patest.cn/contests/pat-b-practise/1014
思路:(1)用一个数组str[4][61]存储四个字符串,
(2)逐个比较前两个字符串,找到第一个相同的大写字母。得到DAY,作为下标输出对应的字符。
(3)再查找出现第二对相同字符的字符c,作为小时h。截止。
(4)查找后两个字符串,查找出现相同英文字符出现的位置。作为分钟m
注意点:
(1)第一个是大写字母A-G,第二个是之后出现的大写字母A-N或者0-9,第三个是字母就行a-z,A-Z
1 #include<stdio.h> 2 //#include<string.h> 3 #include<ctype.h> 4 char day[][4]={"MON","TUE","WED","THU","FRI","SAT","SUN"}; 5 int main() 6 { 7 char str[4][61]; 8 int i,d,h; 9 for(i=0;i<4;i++)scanf("%s",str[i]); //读入四个字符串 10 //len=strlen(str[0])>strlen(str[1])?strlen(str[1]):strlen(str[0]); 11 i=0; 12 while(1) //第一个大写字符 13 { 14 if(str[0][i]==str[1][i]&&str[0][i]>=65&&str[0][i]<=71) 15 { 16 d=str[0][i]-65; 17 break; 18 } 19 i++; 20 } 21 i++; 22 while(1) //第二个字符 23 { 24 if(str[0][i]==str[1][i]) 25 { 26 if(str[0][i]>=65&&str[0][i]<=78){ 27 h=str[0][i]-55; 28 break; 29 } 30 if(isdigit(str[0][i])){ 31 h=str[0][i]-48; 32 break; 33 } 34 } 35 i++; 36 } 37 i=0; 38 while(1) //分钟 39 { 40 if(str[2][i]==str[3][i]&&isalpha(str[2][i]))break; 41 i++; 42 } 43 printf("%s %02d:%02d\n",day[d],h,i); 44 return 0; 45 }