您的位置:首页 > 其它

nyoj 288 Time【数组模拟】

2015-09-02 01:32 148 查看


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 6
2 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: