loky喜欢上一个女孩,女孩在loky眼中绝对是10分女。唯一有点遗憾的是女生有点近视,为了不影响她的美貌,所以她不想戴眼镜,这下问题来了--电脑上的数字她看不清楚。loky想如果自己能把这问题解决了,说不定女孩就喜欢上自己了。数字放大的模型loky已经搞定:数字
0123456789
在电脑上放大显示分别如下:
每个数字都是7行6列,最左边一列都是空格符,空白的位置均是空格符。但是程序loky不会写,现在作为好朋友兼程序员的你,出手帮帮他。
输入
多行输入。每行包括一个由数字0-9构成的字符串s,s长度不超过10000。
输出
每一行输入的字符串产生的输出描述如下:
字符串的每个数字字符按放大形式输出。规定每一行只能输出10个数字字符,超过则换行输出,详见样例。
样例输入
0123456789
00123456789
样例输出
--- ---- ---- ---- ---- ---- --- ---
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
--- ---- --- --- --- --- ---
| | | | | | | | | | | | |
| | | | | | | | | | | | |
--- ---- ---- ---- --- --- ----
--- --- ---- ---- ---- ---- ---- ---
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
--- ---- --- --- --- ---
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
--- --- ---- ---- ---- --- ---
---
| |
| |
---
|
|
----
题目详情:http://acm.hnust.edu.cn/JudgeOnline/problem.php?id=1516
题目分析:
题目不是太难只要输出的时候格式不出错就行,笔者的代码用的是三维数组,当然也可以用
String来储存0-9对应的字符数字,只要在接受到数字输出对应的字符数字。
源代码如下:
#include<stdio.h>
#include<string.h>
char num[10][7][7]={//存储字符数字
{" --- "," | |"," | |"," "," | |"," | |"," --- "},{" "," | "," | "," "," | "," | "," "},
{" ---- "," |"," |"," --- "," | "," | "," ----"},{" ---- "," |"," |"," ---- "," |"," |"," ---- "},
{" "," | |"," | |"," --- "," |"," |"," "},{" ----"," | "," | "," --- "," |"," |"," ---- "},
{" ----"," | "," | "," --- "," | |"," | |"," --- "},{" ---- "," |"," |"," "," |"," |"," "},
{" --- "," | |"," | |"," --- "," | |"," | |"," --- "},{" --- "," | |"," | |"," --- "," |"," |"," ---- "}};
void print1(char in[])
{
int n=strlen(in);
int ct=n/10,pt=n%10;//计算输出行数ct,和最后一行是否为十pt
for(int i=0;i<10*ct;i+=10)
{
for(int j=0;j<7;j++)//输出七行
{
for(int k=i;k<i+10;k++)//输出每一行
{
printf("%s",num[in[k]-'0'][j]);//注意%c和%s的区别
}
printf("\n");
}
//printf("\n");
}
if(pt)//判断最后一行的输出
{
for(int j=0;j<7;j++)
{
for(int k=10*ct;k<n;k++)
{
printf("%s",num[in[k]-'0'][j]);
}
printf("\n");
}
}
}
int main()
{
char d[10000];
while(scanf("%s",d)==1)
{
print1(d);
}
return 0;
}