很久之前写的代码如下(那会代码格式都很丑。。),后来又看见一个大神代码很漂亮照着敲了一遍PAT Basic 1014. 福尔摩斯的约会 (20)(C语言实现)
#include<stdio.h>
#include<ctype.h>
int main()
{
char str1[100],str2[100],str3[100],str4[100];
char week[10][10]={"MON ","TUE ","WED ","THU ","FRI ","SAT ","SUN "};
int first=-1,second=-1,third=-1;
scanf("%s%s%s%s",str1,str2,str3,str4);
for(int i=0;;i++)
{
if(first!=-1&&str1[i]==str2[i])
{
if(isdigit(str1[i]))
{
second=str1[i]-'0';
break;
}
else if(str1[i]>='A'&&str1[i]<='N')
{
second=str1[i]-'A'+10;
break;
}
}
if(first==-1&&str1[i]==str2[i]&&str1[i]>='A'&&str1[i]<='G')
{
first=str1[i]-'A';
}
}
for(int i=0;;i++)
{
if(str3[i]==str4[i]&&isalpha(str3[i])&&third==-1)
{
third=i;
break;
}
}
printf("%s%02d:%02d\n",week[first],second,third);
return 0;
}
照着大神代码敲了遍
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main()
{
char A[100], A1[100], B[100], B1[100];
char day[][10] = {"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"};
int h;
scanf("%s%s%s%s", A, A1, B, B1);
for(int i = 0; A[i] && A1[i]; i++)
{
if(A[i] == A1[i])
if(A[i] >= 'A' && A[i] <= 'G')
{
printf("%s ", day[A[i] - 'A']);
h = i;
break;
}
}
for(int i = h + 1; A[i] && A1[i]; i++)
{
if(A[i] == A1[i])
{
if(A[i] >= 'A' && A[i] <= 'N')
{
printf("%02d:", A[i] - 'A' + 10);
break;
}
else if(isdigit(A[i]))
{
printf("%02d:", A[i] - '0');
break;
}
}
}
for(int i = 0; B[i] && B1[i] != '\0'; i++)
{
if(B[i] == B1[i])
{
if(isalpha(B[i]))
{
printf("%02d", i);
break;
}
}
}
return 0;
}