nyoj 288 Time【数组模拟】

来源:互联网 发布:淘宝修车工具箱 编辑:程序博客网 时间:2024/06/10 02:32

Time

时间限制:1000 ms  |  内存限制:65535 KB
难度:2
描述

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.

Hint:

The digits showed by the digital clock are as follows:
   _  _     _  _  _  _  _  _  | _| _||_||_ |_   ||_||_|| | ||_  _|  | _||_|  ||_| _||_|

输入
There are several test cases.
Each case contains 4 integers in a line, separated by space.
Proceed to the end of file.
输出
For each test case, output the time expressed by the digital clock such as Sample Output.
样例输入
1 2 5 62 3 4 2
样例输出
    _  _  _   | _||_ |_   ||_  _||_| _  _     _  _| _||_| _||_  _|  ||_ 


比较简单,但是又比较磨人的一道题,呃呃呃.......

想了几分钟,刚开始想用map来对应,结果发现不太好,然后想到了用字符串来保存,然后输入了90多个各种符号,一直盯着看,快晕死了...然后很简单的就ac 了........

注意每个字符都是九个字符表示,上下左右全是三个字符,如果什么都没有,那么就是空格,个人用的三维字符数组来保存的,这样在使用的时候直接输出四个数的三层字符,然后就相当于输出了三层.......



 #include<stdio.h>#include<string.h>char x[101][3][10]={{" _ ","| |", "|_|"},{"   ","  |","  |"},{" _ "," _|","|_ "},{" _ "," _|"," _|"},{"   ","|_|","  |"},{" _ ","|_ "," _|"},{" _ ","|_ ","|_|"},{" _ ","  |","  |"},{" _ ","|_|","|_|"},{" _ ","|_|"," _|"}};int main(){int a,b,c,d;while(~scanf("%d%d%d%d",&a,&b,&c,&d)){for(int i=0;i<3;++i)//分别输出三层{printf("%s%s%s%s\n",x[a][i],x[b][i],x[c][i],x[d][i]);}} return 0;}         



0 0