PAT.Basic Level. T.1014.福尔摩斯的约会

来源:互联网 发布:易我数据恢复官网 编辑:程序博客网 时间:2024/05/16 15:04

这道题,注意几个点:
1.第一个相同的字符,一定要大写,而且一定要是在A到G之间。【因为你第一个相同的表示星期几,又没有星期八对吧】
2.第二个相同的字符,要在大写的A到N和0到9之间,这个题目写了,那不多说。
3.第三个相同的字符,一定是英文字母,大小写都可以。
4.输出的时候,按照格式来,9点也要写成09点。

#include<stdio.h>#include<string.h>main(){    char input[5][61];    int i,z,temp1,temp3,temp4,temp5=0;    char temp2;    int max1,max2;    char day[10][5]={"MON","TUE","WED","THU","FRI","SAT","SUN"};//以0起步啊     temp1=0;temp2=0; temp3=0; temp4=0;    for(i=1;i<=4;i++){        scanf("%s",&input[i]);    }    if(strcmp(input[1],input[2])){        max1=strlen(input[1]);    }else{        max1=strlen(input[2]);    }    if(strcmp(input[3],input[4])){        max2=strlen(input[3]);    }else{        max2=strlen(input[4]);    }    for(i=0;i<max1;i++){        if((input[1][i]==input[2][i])  && (input[1][i]>='A' && input[1][i]<='G') && temp4==0){            temp1=input[1][i]-'A'+1;            temp4=1;            continue;        }        if(temp4){            if(input[1][i]==input[2][i] && ((input[1][i]>='A' && input[1][i]<='N') || (input[1][i]>='0' && input[1][i]<='9'))){                temp2=input[1][i];                break;            }        }    }    for(i=0;i<max2;i++){        if(input[3][i]==input[4][i] && ((input[3][i]>='a' && input[3][i]<='z')||(input[3][i]>='A' && input[3][i]<='Z'))){            temp3=i;            break;        }    }    if(temp2>='0' && temp2<='9'){        temp2=temp2-'0';    }else{        temp2=10+temp2-'A';    }    printf("%s %02d:%02d",day[temp1-1],temp2,temp3);    return 0;} 
0 0