求求大佬帮忙优化代码(纯C语言)

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

abyss10086 @ 2022-08-15 23:44:00

我在试运行的时候样例能够运行,但是在提交答案的时候始终显示我的输出的第一行是空字符(ACSII 0) 请问一下究竟是哪里有问题,谢谢大佬帮忙!!

#include <stdio.h>
#define MAX 100

char TV[10][5][3] =
{
    {
        'X' , 'X' , 'X' ,
        'X' , '.' , 'X' ,
        'X' , '.' , 'X' ,
        'X' , '.' , 'X' ,
        'X' , 'X' , 'X' ,
    } ,
    {   '.' , '.' , 'X' ,
        '.' , '.' , 'X' ,
        '.' , '.' , 'X' ,
        '.' , '.' , 'X' ,
        '.' , '.' , 'X' ,
    } ,
    {
        'X' , 'X' , 'X' ,
        '.' , '.' , 'X' ,
        'X' , 'X' , 'X' ,
        'X' , '.' , '.' ,
        'X' , 'X' , 'X' ,
    } ,
    {
        'X' , 'X' , 'X' ,
        '.' , '.' , 'X' ,
        'X' , 'X' , 'X' ,
        '.' , '.' , 'X' ,
        'X' , 'X' , 'X' ,
    } ,
    {
        'X' , '.' , 'X' ,
        'X' , '.' , 'X' ,
        'X' , 'X' , 'X' ,
        '.' , '.' , 'X' ,
        '.' , '.' , 'X' ,
    } ,
    {
        'X' , 'X' , 'X' ,
        'X' , '.' , '.' ,
        'X' , 'X' , 'X' ,
        '.' , '.' , 'X' ,
        'X' , 'X' , 'X' ,
    } ,
    {
        'X' , 'X' , 'X' ,
        'X' , '.' , '.' ,
        'X' , 'X' , 'X' ,
        'X' , '.' , 'X' ,
        'X' , 'X' , 'X' ,
    } ,
    {
        'X' , 'X' , 'X' ,
        '.' , '.' , 'X' ,
        '.' , '.' , 'X' ,
        '.' , '.' , 'X' ,
        '.' , '.' , 'X' ,
    } ,
    {
        'X' , 'X' , 'X' ,
        'X' , '.' , 'X' ,
        'X' , 'X' , 'X' ,
        'X' , '.' , 'X' ,
        'X' , 'X' , 'X' ,
    } ,
    {
        'X' , 'X' , 'X' ,
        'X' , '.' , 'X' ,
        'X' , 'X' , 'X' ,
        '.' , '.' , 'X' ,
        'X' , 'X' , 'X' ,
    }
} ;
int n ;
char s[MAX+2] ;

int main()
{
    scanf ( "%d" , &n ) ;
    for ( int i = 0 ; i <= n ; i++ )
    {
        s[i] = getchar ( ) ;
    }
    for ( int i = 0 ; i < 5 ; i++ )
    {
        for ( int j = 1 ; j <= n ; j++ )
        {
            for ( int k = 0 ; k < 3 ; k++ )
            {
                printf ( "%c" , TV[s[j]-'0'][i][k] ) ;
            }
            if ( j <= n - 1 )
            {
                printf ( "." ) ;
            }
        }
        printf ( "\n" ) ;
    }
    return 0 ;
}

希望大佬能指出我的错误点,再次感谢!


by 蒟酱 @ 2022-08-15 23:51:29

@abyss10086 这样就可以了

#include <stdio.h>
#define MAX 100

char TV[10][5][3] =
{
    {
        {'X' , 'X' , 'X' },
        {'X' , '.' , 'X' },
        {'X' , '.' , 'X' },
        {'X' , '.' , 'X' },
        {'X' , 'X' , 'X' },
    } ,
    {   {'.' , '.' , 'X' },
        {'.' , '.' , 'X' },
        {'.' , '.' , 'X' },
        {'.' , '.' , 'X' },
        {'.' , '.' , 'X' },
    } ,
    {
        {'X' , 'X' , 'X' },
        {'.' , '.' , 'X' },
        {'X' , 'X' , 'X' },
        {'X' , '.' , '.' },
        {'X' , 'X' , 'X' },
    } ,
    {
        {'X' , 'X' , 'X' },
        {'.' , '.' , 'X' },
        {'X' , 'X' , 'X' },
        {'.' , '.' , 'X' },
        {'X' , 'X' , 'X' },
    } ,
    {
        {'X' , '.' , 'X' },
        {'X' , '.' , 'X' },
        {'X' , 'X' , 'X' },
        {'.' , '.' , 'X' },
        {'.' , '.' , 'X' },
    } ,
    {
        {'X' , 'X' , 'X' },
        {'X' , '.' , '.' },
        {'X' , 'X' , 'X' },
        {'.' , '.' , 'X' },
        {'X' , 'X' , 'X' },
    } ,
    {
        {'X' , 'X' , 'X' },
        {'X' , '.' , '.' },
        {'X' , 'X' , 'X' },
        {'X' , '.' , 'X' },
        {'X' , 'X' , 'X' },
    } ,
    {
        {'X' , 'X' , 'X' },
        {'.' , '.' , 'X' },
        {'.' , '.' , 'X' },
        {'.' , '.' , 'X' },
        {'.' , '.' , 'X' },
    } ,
    {
        {'X' , 'X' , 'X' },
        {'X' , '.' , 'X' },
        {'X' , 'X' , 'X' },
        {'X' , '.' , 'X' },
        {'X' , 'X' , 'X' },
    } ,
    {
        {'X' , 'X' , 'X' },
        {'X' , '.' , 'X' },
        {'X' , 'X' , 'X' },
        {'.' , '.' , 'X' },
        {'X' , 'X' , 'X' },
    }
} ;
int n ;
char s[MAX+2] ;

int main()
{
    scanf ( "%d" , &n ) ;
    for ( int i = 0 ; i <= n ; i++ )
    {
        s[i] = getchar ( ) ;
    }
    for ( int i = 0 ; i < 5 ; i++ )
    {
        for ( int j = 1 ; j <= n ; j++ )
        {
            for ( int k = 0 ; k < 3 ; k++ )
            {
                printf ( "%c" , TV[s[j]-'0'][i][k] ) ;
            }
            if ( j <= n - 1 )
            {
                printf ( "." ) ;
            }
        }
        printf ( "\n" ) ;
    }
    return 0 ;
}

by abyss10086 @ 2022-08-16 08:48:52

@蒟酱 我刚才试了一下,好像还是一样的问题诶


by wyj20810622 @ 2022-11-08 17:02:26

你用string试试


|