grids 2745 显示器

  • 题意

  • 中文不解释
  • 思路

  • 是一道模拟题
    可以使用七段数码管的原理,将每个数字在每一段是否要显示标识出来,形成一个10×7的数组。
    题目较简单,就是有很多小细节
    (1)输出的数字没有说不能以零开头
    (2)输出的数字可以是0
    (3)是数字与数字间才用空类隔开,也就是说最后一个数字后面不能有空列
    (3)是每个数后面有一个空行,因此最后一个数有空行
    (4)注意数字的表示,如‘9’最下面还有一横的要注意。数字表示如下:
         -   -       -   -   -   -   -   -
      |   |   | | | |   |     | | | | | | |
         -   -   -   -   -       -   -
      | |     |   |   | | |   | | |   | | |
         -   -       -   -       -   -   -
  • 总结


  • 代码

  • I 使用int数组
    (1)C
    
    #include "stdio.h"
    //#include "stdlib.h"
    #include "string.h"
    char a[10][7] =
            {
                '-','|','|',' ','|','|','-',//0
                ' ',' ','|',' ',' ','|',' ',//1
                '-',' ','|','-','|',' ','-',//2
                '-',' ','|','-',' ','|','-',//3
                ' ','|','|','-',' ','|',' ',//4
                '-','|',' ','-',' ','|','-',//5
                '-','|',' ','-','|','|','-',//6
                '-',' ','|',' ',' ','|',' ',//7
                '-','|','|','-','|','|','-',//8
                '-','|','|','-',' ','|','-' //9
            };
    int main()
    {
        char n[9];
        int i,j,k,s,len;
        //int flag = 0;
        scanf("%d %s",&s,n);
        while(!(s==0 && strlen(n)==1 && n[0]=='0') )
        {
            
            //if(flag==1){putchar('\n');}//空白行 
            
            len = strlen(n);
            //printf("len=%d\n",len);
            for(i=0;i<len;i++)
            {
                putchar(' ');
                for(j=0;j<s;j++) putchar(a[n[i]-'0'][0]);
                putchar(' '); 
                if(i<len-1){putchar(' ');}//空白列 
            }
            putchar('\n');
            
            for(j=0;j<s;j++)
            {
                for(i=0;i<len;i++)
                {
                    putchar(a[n[i]-'0'][1]);
                    for(k=0;k<s;k++) putchar(' ');
                    putchar(a[n[i]-'0'][2]);
                    if(i<len-1){putchar(' ');}//空白列 
                }
                putchar('\n');
            }
            
            for(i=0;i<len;i++)
            {
                putchar(' ');
                for(j=0;j<s;j++) putchar(a[n[i]-'0'][3]);
                putchar(' ');
                if(i<len-1){putchar(' ');}//空白列  
            }
            putchar('\n');
            
            for(j=0;j<s;j++)
            {
                for(i=0;i<len;i++)
                {
                    putchar(a[n[i]-'0'][4]);
                    for(k=0;k<s;k++) putchar(' ');
                    putchar(a[n[i]-'0'][5]);
                    if(i<len-1){putchar(' ');}//空白列 
                }
                putchar('\n');
            }
            
            for(i=0;i<len;i++)
            {
                putchar(' ');
                for(j=0;j<s;j++) putchar(a[n[i]-'0'][6]);
                putchar(' '); 
                if(i<len-1){putchar(' ');}//空白列 
            }
            putchar('\n');
            
            putchar('\n');//空白行
             
            scanf("%d %s",&s,n);
            //flag = 1;
        }    
        //system("pause");
        return 0;
    }
    
    
    



    你可能感兴趣的:(模拟,简单,grids,OpenJudge,2745)