百练:2745:显示器

描述

你的一个朋友买了一台电脑。他以前只用过计算器,因为电脑的显示器上显示的数字的样子和计算器是不一样,所以当他使用电脑的时候会比较郁闷。为了帮助他,你决定写一个程序把在电脑上的数字显示得像计算器上一样。

输入

输入包括若干行,每行表示一个要显示的数。每行有两个整数s和n (1 <= s <= 10, 0 <= n <= 99999999),这里n是要显示的数,s是要显示的数的尺寸。

如果某行输入包括两个0,表示输入结束。这行不需要处理。

输出

显示的方式是:用s个'-'表示一个水平线段,用s个'|'表示一个垂直线段。这种情况下,每一个数字需要占用s+2列和2s+3行。另外,在两个数字之间要输出一个空白的列。在输出完每一个数之后,输出一个空白的行。注意:输出中空白的地方都要用空格来填充。

样例输入

2 12345
3 67890
0 0

样例输出

      --   --        -- |    |    | |  | | |    |    | |  | | --   --   --   -- | |       |    |    || |       |    |    |--   --        -- ---   ---   ---   ---   --- 
|         | |   | |   | |   |
|         | |   | |   | |   |
|         | |   | |   | |   |---         ---   --- 
|   |     | |   |     | |   |
|   |     | |   |     | |   |
|   |     | |   |     | |   |---         ---   ---   ---

提示

数字(digit)指的是0,或者1,或者2……或者9。
数(number)由一个或者多个数字组成。

观察每个数字的特点(显示特点),用选择法打印出来

#include
char str1[10];
char str2[1005][10];
int num[1005];
using namespace std;
int main()
{
    int i,j,k,s,t=0;
    while(1){
        scanf("%d%s",&num[t],str2[t]);
        if(num[t]==0)
        break;
        t++;
    }
        for(int x=0;x
            s=num[x];
            strcpy(str1,str2[x]);
        
        for(i=0;i<2*s+3;i++){
    
            for(j=0;str1[j];j++){
            
             for(k=0;k<2+s;k++){
                 if(i==0&&k>0&&k<=s){
                 if(str1[j]=='1'||str1[j]=='4')
                 printf(" ");
                 else
                 printf("-");}
            else if(k>0&&k<=s&&i==s+1){
                if(str1[j]=='0'||str1[j]=='7'||str1[j]=='1')
                printf(" ");
                else
                printf("-");
            }
            else if(k>0&&i==2*s+2&&k<=s){
                if(str1[j]=='1'||str1[j]=='4'||str1[j]=='7')
                printf(" ");
                else
                printf("-");
            }
            else if(k==0&&i>=1&&i<=s){
                if(str1[j]=='1'||str1[j]=='2'||str1[j]=='3'||str1[j]=='7')
                printf(" ");
                else
                printf("|");
            }
            else if(k==s+1&&i>=1&&i<=s)
            {
                if(str1[j]=='5'||str1[j]=='6')
                printf(" ");
                else
                printf("|");
            }
            else if(k==0&&i>=s+2&&i<=2*s+1){
                if(str1[j]=='0'||str1[j]=='2'||str1[j]=='6'||str1[j]=='8')
                printf("|");
                else
                printf(" ");
            }
            else if(k==s+1&&i>=s+2&&i<=2*s+1){
                if(str1[j]=='2')
                printf(" ");
                else
                printf("|");
            }
            else
            printf(" ");
            }
            
            if(str1[j+1])
            printf(" ");}
            cout<     }
    cout<     }
    
    
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部