1014 福尔摩斯的约会 (20分)

这道题是PAT Basic Level,坑挺多的,必须先找到星期几后,再接着找第几个小时,注意各个if的条件,字母不是A到Z。而且找到星期后,必须用cintinue跳出此次循环,否则有可能满足“小时”的条件。本是一道20分的题,断断续续费了好久时间,还需要多刷题。

#include<bits/stdc++.h>
using namespace std;
string str;
int h,m;
void day(char c)
{
    if(c=='A')
        str = "MON";
    else if(c=='B')
        str = "TUE";
    else if(c=='C')
        str = "WED";
    else if(c=='D')
        str = "THU";
    else if(c=='E')
        str = "FRI";
    else if(c=='F')
        str = "SAT";
    else if(c=='G')
        str = "SUN";
}
void tt(char c)
{
    if(c>='0'&&c<='9')
        h = c-'0';
    else{
        h = c-'A'+10;
    }
}
int main()
{
    string s1,s2,s3,s4;
    cin>>s1>>s2>>s3>>s4;
    int flag = 0;//判断是第几个相同的字符
    for(int i = 0;i<s1.length()&&i<s2.length();i++)
    {
    if(s1[i]==s2[i]&&s1[i]>='A'&&s1[i]<='G'&&flag==0)
        {
            flag++;
            day(s1[i]);
            continue;
        }
        if(flag==1&&s1[i]==s2[i]&&((s1[i]>='0'&&s1[i]<='9')||(s1[i]>='A'&&s1[i]<='N')))
        {
            tt(s1[i]);
            break;
        }
        }
    for(int i = 0;i<s3.length()&&i<s4.length();i++)
    {
        if(s3[i]==s4[i]&&((s3[i]>='a'&&s3[i]<='z')||(s3[i]>='A'&&s3[i]<='Z')))
        {
            m = i;
            break;
        }
    }
    cout<<str;
    printf(" %02d:%02d",h,m);
}

不知道为啥,复制粘贴代码的时候,总是显示0行,预览也变成一片空白,这段代码粘了好几遍才弄过来的,难道是我浏览器的问题?!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值