SDUST 作业10 Problem I 液晶显示

SDUST 作业10 Problem I 液晶显示,第1张

SDUST 作业10 Problem I 液晶显示 Description

你的朋友刚买了一台新电脑,他以前用过的最强大的计算工具是一台袖珍计算器。


现在,看着自己的新电脑,他有点失望,因为他更喜欢计算器上的LC显示器。


所以,你决定写一个LC显示风格的程序帮他在电脑上显示数字。


Input

输入包括若干行,每一行有两个整数。


输入为两个0表示结束,并且此行不被处理。


每行输入的两个整数s和n,满足1<=s<=10且0<=n<=99 999 999,其中n是要被现实的数字,s是n应该显示的大小(放大的倍数)。


Output

输出的数字是LC显示风格的:使用s个“-”表示水平线和s个“|”竖直线,每个数字刚好占据s+2列和2s+3行,所有没有“-”和“|”的空白处请用空格填满。


并且每两个数字之间要有一列空格。


每一行输入数字对应上述一组LC显示风格输出


任意两组数字的输出之间用一个空行分割。


Sample Input

 #include <stdio.h>
char a[][]= {"","","","","","","","","",""};
void prints(char c,int n)
{
while(n--)putchar(c);
}
int main()
{
int k=;
char s[];
int first=;
while(scanf("%d%s",&k,s)==&&(k||s[]!=''))
{
if(!first)printf("\n");else first=;
for(int i=; i<; i++)
{
int t=;
for(int j=; j<k; j++)
{
for(int n=; s[n]!=; n++)
{
if(a[s[n]-''][i]=='')
{
if(j) t=;
else{
putchar(' ');
prints('-',k);
putchar(' ');
if(s[n+]!=)putchar(' ');
} }
else if(a[s[n]-''][i]=='')
{
if(j) t=;
else{
prints(' ',k+);
if(s[n+]!=)putchar(' ');
}
}
else
{
if(a[s[n]-''][i]=='')
{
putchar('|');
prints(' ',k+);
}
else if(a[s[n]-''][i]=='')
{
prints(' ',k+);
putchar('|');
}
else if(a[s[n]-''][i]=='')
{
putchar('|');
prints(' ',k);
putchar('|');
}
if(s[n+]!=)putchar(' ');
}
}
if(t)putchar('\n');
}
}
}
return ;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/589311.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存