c++---天梯赛---大笨钟

★题目:

★思路分析: 对可能的情况进行分类处理。在这里我把它们分成了3大类。

①不在敲钟时间

②在敲钟时间但为整点

③在敲钟时间且不为整点。

在敲钟时间段内我们可分别对晚8点前后进行分类讨论,

我们可对这几种情况分别处理达到题目的要求。

★易错点:端点值的取舍。

★代码解释:

#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int main()
{
    string a,b;
    char c[6];
    int i,x,t=1;
    a={"Dang"};
    b={"  Too early to Dang."};
    scanf("%s",c);
    if(c[0]=='0'||c[0]=='1'&&c[1]<'2'||c[0]=='1'&&c[1]=='2'&&c[3]=='0'&&c[4]=='0')
       {
           t=0;
           cout<<"Only "<<c<<b;
       }                                                        //不在敲钟的时刻
    else if(c[0]=='1'&&c[3]=='0'&&c[4]=='0')
        x=(c[1]-'0')-2;                                         //晚8点之前的整点情况
    else if(c[0]=='1')
        x=(c[1]-'0')-1;                                         //晚8点之前的非整点情况
    else if(c[0]=='2'&&c[3]=='0'&&c[4]=='0')
        x=(c[1]-'0')+8;                                         //其他在敲钟时间段的整点情况
    else if(c[0]=='2')
        x=(c[1]-'0')+9;                                         //敲钟时间段内剩余的情况

        if(t==1)
        for(i=0;i<x;i++)
        cout<<a;                                                //按要求的输出

        cout<<endl;
    return 0;
}

★测试结果:

 

posted on 2018-01-24 19:40  追梦者~  阅读(531)  评论(0)    收藏  举报