boj429.学姐的数码管-输出格式以及代码风格的考量

来源:互联网 发布:蓝月传奇官印数据 编辑:程序博客网 时间:2024/05/18 01:21

boj429.学姐的数码管

题目描述

学姐的七段数码管玩的出神入化。 现在给你一个浮点数,你需要把它以七段数码管的形式输出出来。 一个(2n+1)n的矩阵来表示七段数码管,若下标均从0开始,则以第0列的两个,第n1列的两个,第0行的一个,第n行的一个,第2n行的一个表示七个段。小数点所占矩形为(2n+1)1,点在中间最下面一列。每一个数字或小数点矩阵用一列空格隔开。 数码管亮的部分用#覆盖,其余部分用空格补全,若一个数字或小数点的行末尾无#,也要用空格字符补全为(2n+1)n 细节参见样例。

输入格式

输入有多组数据,数据不超过100组,每组数据给一个整数n(3n10),和一个浮点数,输入保证每一个浮点数的总长度为4位且没有前导0。

输出格式

输出他的数码管显示。每组数据末尾输出一个空行。

输入样例

3 23303 14564 78.9

输出样例

### ### ### ###  #   #   # # #  #   #   # # #### ### ### # ##     #   # # ##     #   # # #### ### ### ###  # # # ### ###  # # # #   #    # # # #   #    # ### ### ###  #   #   # # #  #   #   # # #  #   # ### ####### ####   ####   # #  #   #  #   # #  #   #  #   # #  #   #  #   # ####   ####   # #  #      #   # #  #      #   # #  #      #   # #### # ####

一开始完全没懂这题什么意思,后来才发现,就是字面那意思,什么七段管啊,分明就是摆火柴的小女孩。。。

思路很简单,就是分解这些数字然后输出就好了,不过,有三点需要注意

1.一定要初始化,为了省事,除了‘#’我都不想额外去管,所以全部初始化为‘ ’就可以了,而且是每次输入n 和四位浮点数的时候都要这么做,不然两次的‘#’和在一起,可想而知

2.不要输出多余的‘‘,因为数组一开始我是直接

for(i=0;i<=2*n;i++){
for(j=0;j<4*n+3;j++){
printf("%c",mapp[i][j]);
}
看上去确实是,空格数+数字宽度*4,但是有小数点的时候,我每一行就会神不知鬼不觉的多出很多‘ ’;根本检查不出来啊!限制输出很重要的
呵呵,你肯定想知道第三点。。。别急,我没忘呢
3.你不觉得上面的代码太累赘了吗?!!!我都觉得,可是怎么办呢,要知道所有的数字都是七段式的,也就是说,整个输出输入都是在画横线和竖线的...

0 0
原创粉丝点击