NEUOJ Problem48

NEUOJ Problem48
Problem Description

Digital clock use 4 digits to express time, each digit is described by 3*3 characters (including”|”,”_”and” “).now given the current time, please tell us how can it be expressed by the digital clock.

Input

There are several test cases.

Each case contains 4 integers in a line, separated by space.

Proceed to the end of file.

Output

For each test case, output the time expressed by the digital clock such as Sample Output.

Sample Input
1 2 5 6
2 3 4 2
Sample Output
_ _ _
| || |_
||_ |||
_ _ _
| ||| |
|_ | ||

我的代码:

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int a[4];
    int i,j;
    char ch1[3][3]={{' ',' ',' '},{' ',' ','|'},{' ',' ','|'}};
    char ch2[3][3]={{' ','_',' '},{' ','_','|'},{'|','_',' '}};
    char ch3[3][3]={{' ','_',' '},{' ','_','|'},{' ','_','|'}};
    char ch4[3][3]={{' ',' ',' '},{'|','_','|'},{' ',' ','|'}};
    char ch5[3][3]={{' ','_',' '},{'|','_',' '},{' ','_','|'}};
    char ch6[3][3]={{' ','_',' '},{'|','_',' '},{'|','_','|'}};
    char ch7[3][3]={{' ','_',' '},{' ',' ','|'},{' ',' ','|'}};
    char ch8[3][3]={{' ','_',' '},{'|','_','|'},{'|','_','|'}};
    char ch9[3][3]={{' ','_',' '},{'|','_','|'},{' ','_','|'}};
    char ch0[3][3]={{' ','_',' '},{'|',' ','|'},{'|','_','|'}};
    while(~scanf("%d %d %d %d",&a[0],&a[1],&a[2],&a[3]))
    {
        for(i=0;i<3;i++)
        {
            for(j=0;j<4;j++)
            {
                switch(a[j])
                {
                    case 0:printf("%c%c%c",ch0[i][0],ch0[i][1],ch0[i][2]);break;
                    case 1:printf("%c%c%c",ch1[i][0],ch1[i][1],ch1[i][2]);break;
                    case 2:printf("%c%c%c",ch2[i][0],ch2[i][1],ch2[i][2]);break;
                    case 3:printf("%c%c%c",ch3[i][0],ch3[i][1],ch3[i][2]);break;
                    case 4:printf("%c%c%c",ch4[i][0],ch4[i][1],ch4[i][2]);break;
                    case 5:printf("%c%c%c",ch5[i][0],ch5[i][1],ch5[i][2]);break;
                    case 6:printf("%c%c%c",ch6[i][0],ch6[i][1],ch6[i][2]);break;
                    case 7:printf("%c%c%c",ch7[i][0],ch7[i][1],ch7[i][2]);break;
                    case 8:printf("%c%c%c",ch8[i][0],ch8[i][1],ch8[i][2]);break;
                    case 9:printf("%c%c%c",ch9[i][0],ch9[i][1],ch9[i][2]);break;
                }
            }
            cout<<endl;
        }
    }
    return 0;
}

网上某大神的代码

#include <iostream>
using namespace std;
int main()
{
    int a[4];
    while(cin>>a[0]>>a[1]>>a[2]>>a[3])
    {
        for(int j=1; j<=3; j++)
        {
            if(j==1)
            {
                for(int i=0; i<4; i++)
                {
                    if(a[i]==1||a[i]==4)
                        cout<<"   ";
                    else
                        cout<<" _ ";
                }
            }
            if(j==2)
            {
                for(int i=0; i<4; i++)
                {
                    if(a[i]==1||a[i]==7)
                        cout<<"  |";
                    else if(a[i]==0)
                        cout<<"| |";
                    else if(a[i]==2||a[i]==3)
                        cout<<" _|";
                    else if(a[i]==4||a[i]==8||a[i]==9)
                        cout<<"|_|";
                    else
                        cout<<"|_ ";
                }
            }
            if(j==3)
            {
                for(int i=0; i<4; i++)
                {
                    if(a[i]==0||a[i]==6||a[i]==8)
                        cout<<"|_|";
                    else if(a[i]==1||a[i]==4||a[i]==7)
                        cout<<"  |";
                    else if(a[i]==2)
                        cout<<"|_ ";
                    else
                        cout<<" _|";
                }
            }
            cout<<endl;
        }
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值