自测全对,为啥只过两个点

P5730 【深基5.例10】显示屏

KiritoFD @ 2024-08-12 11:12:08

#include<stdio.h>
int main()
{
    int a;
    char b;
    scanf("%d",&a);
    char s[6][a*4+8];
    for(int i=1;i<=a*4+8;i++) 
    {
        for(int j=1;j<=5;j++)
        s[j][i]='X';
    }

    for(int i=1;i<=a+2;i++)
    {
      scanf("%c",&b);
      switch(b)
      {
        case '0':
        {
            for(int q=2;q<=4;q++) s[q][i*4-1]='.';
            break;
        }
        case '1':
        {
            for(int q=1;q<=5;q++)
            {
                s[q][i*4-1]='.';
                s[q][i*4-2]='.';
            }
            break;
        }
        case '2':
        {
            s[2][i*4-1]='.';
            s[4][i*4-1]='.';
            s[2][i*4-2]='.';
            s[4][i*4]='.';
            break;
        }
        case '3':
        {
            s[2][i*4-1]='.';
            s[2][i*4-2]='.';
            s[4][i*4-1]='.';
            s[4][i*4-2]='.';
            break;
        }
        case '4':
        {
            s[2][i*4-1]='.';
            s[1][i*4-1]='.';
            s[4][i*4-2]='.';
            s[4][i*4-1]='.';
            s[5][i*4-1]='.';
            s[5][i*4-2]='.';
            break;
        }
        case '5':
        {
            s[2][i*4-1]='.';
            s[2][i*4]='.';
            s[4][i*4-1]='.';
            s[4][i*4-2]='.';
            break;
        }
        case '6':
        {
           s[2][i*4-1]='.';
           s[2][i*4]='.';
           s[4][i*4-1]='.';
           break;
        }
        case '7':
        {
            for(int q=1;q<=4;q++)
            {
                s[q+1][i*4-2]='.';
                s[q+1][i*4-1]='.';
            }
            break;
        }
        case '8':
        {
            s[2][i*4-1]='.';
            s[4][i*4-1]='.';
            break;
        }
        case '9':
        {
            s[2][i*4-1]='.';
            s[4][i*4-1]='.';
            s[4][i*4-2]='.';
            break;
        }
      }
      for(int r=1;r<=5;r++)
      s[r][i*4-3]='.';
    }
    for(int i=1;i<=4;i++)
    {
        for(int j=10;j<=a*4+8;j++)
        {
            printf("%c",s[i][j]);
        }
        printf("\n");
    }
    for(int i=10;i<=a*4+8;i++) printf("%c",s[5][i]);
}

by liaocr @ 2024-08-12 11:16:51

@KiritoFD 不知道 but....样例好像没过


by Oy2006 @ 2024-08-12 19:29:02

输入第二行的时候没空格默认是一个数字了


by Oy2006 @ 2024-08-12 20:19:47

第二行数字用字符串(数组)输入再转成整型(也用数组)

定义:char a[105];int b[105];

转换方式:b[i]=a[i]-'0'


|