boj429.学姐的数码管
题目描述
学姐的七段数码管玩的出神入化。 现在给你一个浮点数,你需要把它以七段数码管的形式输出出来。 一个 (2∗n+1)∗n 的矩阵来表示七段数码管,若下标均从0开始,则以第0列的两个,第 n−1 列的两个,第0行的一个,第 n 行的一个,第 2∗n 行的一个表示七个段。小数点所占矩形为 (2∗n+1)∗1 ,点在中间最下面一列。每一个数字或小数点矩阵用一列空格隔开。 数码管亮的部分用#覆盖,其余部分用空格补全,若一个数字或小数点的行末尾无#,也要用空格字符补全为 (2∗n+1)∗n 细节参见样例。
输入格式
输入有多组数据,数据不超过100组,每组数据给一个整数 n(3≤n≤10) ,和一个浮点数,输入保证每一个浮点数的总长度为4位且没有前导0。
输出格式
输出他的数码管显示。每组数据末尾输出一个空行。
输入样例
3 2330
3 1456
4 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,但是有小数点的时候,我每一行就会神不知鬼不觉的多出很多‘ ’;根本检查不出来啊!限制输出很重要的#include #include #include double eps=1e-6; char mapp[90][45]; /** 一下10个函数是用来输出0-9的 */ void print0(int n,int locatey) { int i,j; for(i=locatey;i
呵呵,你肯定想知道第三点。。。别急,我没忘呢
3.你不觉得上面的代码太累赘了吗?!!!我都觉得,可是怎么办呢,要知道所有的数字都是七段式的,也就是说,整个输出输入都是在画横线和竖线的...