样例与本地测试结果一致,但是wrong answer Too long

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

Zhu_Yi @ 2020-12-25 13:38:20

#include <stdio.h>

int main() {
    int a, n, b, c, i;
    char A[200];
    scanf("%d", &n);        

    scanf("%s", A);
    char row1 [1000];
    char row2 [1000];
    char row3 [1000];
    char row4 [1000];
    char row5 [1000];

    for (i = 1; i < n; i++) {
        row1[4 * i - 1] = '.';
        row2[4 * i - 1] = '.';
        row3[4 * i - 1] = '.';
        row4[4 * i - 1] = '.';
        row5[4 * i - 1] = '.';
    }
    for (i = 0; i < n; i++) { 
        a = A[i] - 48;
        if (a == 0) {

            row1[4 * i + 2] = 'X';
            row1[4 * i + 1] = 'X';
            row1[4 * i] = 'X';

            row2[4 * i + 2] = 'X';
            row2[4 * i + 1] = '.';
            row2[4 * i] = 'X';

            row3[4 * i + 2] = 'X';
            row3[4 * i + 1] = '.';
            row3[4 * i] = 'X';

            row4[4 * i + 2] = 'X';
            row4[4 * i + 1] = '.';
            row4[4 * i] = 'X';

            row5[4 * i + 2] = 'X';
            row5[4 * i + 1] = 'X';
            row5[4 * i] = 'X';
        }
        if (a == 1) {

            row1[4 * i + 2] = 'X'; 
            row1[4 * i + 1] = '.';
            row1[4 * i] = '.';

            row2[4 * i + 2] = 'X';
            row2[4 * i + 1] = '.';
            row2[4 * i] = '.';

            row3[4 * i + 2] = 'X';
            row3[4 * i + 1] = '.';
            row3[4 * i] = '.';

            row4[4 * i + 2] = 'X';
            row4[4 * i + 1] = '.';
            row4[4 * i] = '.';

            row5[4 * i + 2] = 'X';
            row5[4 * i + 1] = '.';
            row5[4 * i] = '.';
        }
        if (a == 2) {
            row1[4 * i ] = 'X';
            row1[4 * i + 1] = 'X';
            row1[4 * i + 2] = 'X';
            row2[4 * i ] = '.';
            row2[4 * i + 1] = '.';
            row2[4 * i + 2] = 'X';
            row3[4 * i ] = 'X';
            row3[4 * i + 1] = 'X';
            row3[4 * i + 2] = 'X';
            row4[4 * i ] = 'X';
            row4[4 * i + 1] = '.';
            row4[4 * i + 2] = '.'; 
            row5[4 * i ] = 'X';
            row5[4 * i + 1] = 'X';
            row5[4 * i + 2] = 'X';
        }
        if (a == 3) {
            row1[4 * i] = 'X';
            row1[4 * i + 1] = 'X';
            row1[4 * i + 2] = 'X';
            row2[4 * i] = '.';
            row2[4 * i + 1] = '.';
            row2[4 * i + 2] = 'X';
            row3[4 * i] = 'X';
            row3[4 * i + 1] = 'X';
            row3[4 * i + 2] = 'X';
            row4[4 * i] = '.';
            row4[4 * i + 1] = '.';
            row4[4 * i + 2] = 'X';
            row5[4 * i] = 'X';
            row5[4 * i + 1] = 'X';
            row5[4 * i + 2] = 'X';
        }
        if (a == 4) {
            row1[4 * i] = 'X';
            row1[4 * i + 1] = '.';
            row1[4 * i + 2] = 'X';
            row2[4 * i] = 'X';
            row2[4 * i + 1] = '.';
            row2[4 * i + 2] = 'X';
            row3[4 * i] = 'X';
            row3[4 * i + 1] = 'X';
            row3[4 * i + 2] = 'X';
            row4[4 * i] = '.';
            row4[4 * i + 1] = '.';
            row4[4 * i + 2] = 'X';
            row5[4 * i] = '.';
            row5[4 * i + 1] = '.';
            row5[4 * i + 2] = 'X';
        }
        if (a == 5) {
            row1[4 * i] = 'X';
            row1[4 * i + 1] = 'X';
            row1[4 * i + 2] = 'X';
            row2[4 * i] = 'X';
            row2[4 * i + 1] = '.';
            row2[4 * i + 2] = '.';
            row3[4 * i] = 'X';
            row3[4 * i + 1] = 'X';
            row3[4 * i + 2] = 'X';
            row4[4 * i] = '.';
            row4[4 * i + 1] = '.';
            row4[4 * i + 2] = 'X';
            row5[4 * i] = 'X';
            row5[4 * i + 1] = 'X';
            row5[4 * i + 2] = 'X';
        }
        if (a == 6) {
            row1[4 * i] = 'X';
            row1[4 * i + 1] = 'X';
            row1[4 * i + 2] = 'X';
            row2[4 * i] = 'X';
            row2[4 * i + 1] = '.';
            row2[4 * i + 2] = '.';
            row3[4 * i] = 'X';
            row3[4 * i + 1] = 'X';
            row3[4 * i + 2] = 'X';
            row4[4 * i] = 'X';
            row4[4 * i + 1] = '.';
            row4[4 * i + 2] = 'X';
            row5[4 * i] = 'X';
            row5[4 * i + 1] = 'X';
            row5[4 * i + 2] = 'X';
        }
        if (a == 7) {
            row1[4 * i] = 'X';
            row1[4 * i + 1] = 'X';
            row1[4 * i + 2] = 'X';
            row2[4 * i] = '.';
            row2[4 * i + 1] = '.';
            row2[4 * i + 2] = 'X';
            row3[4 * i] = '.';
            row3[4 * i + 1] = '.';
            row3[4 * i + 2] = 'X';
            row4[4 * i] = '.';
            row4[4 * i + 1] = '.';
            row4[4 * i + 2] = 'X';
            row5[4 * i] = '.';
            row5[4 * i + 1] = '.';
            row5[4 * i + 2] = 'X';
        }
        if (a == 8) {
            row1[4 * i] = 'X';
            row1[4 * i + 1] = 'X';
            row1[4 * i + 2] = 'X';
            row2[4 * i] = 'X';
            row2[4 * i + 1] = '.';
            row2[4 * i + 2] = 'X';
            row3[4 * i] = 'X';
            row3[4 * i + 1] = 'X';
            row3[4 * i + 2] = 'X';
            row4[4 * i] = 'X';
            row4[4 * i + 1] = '.';
            row4[4 * i + 2] = 'X';
            row5[4 * i] = 'X';
            row5[4 * i + 1] = 'X';
            row5[4 * i + 2] = 'X';
        }
        if (a == 9) {
            row1[4 * i] = 'X';
            row1[4 * i + 1] = 'X';
            row1[4 * i + 2] = 'X';
            row2[4 * i] = 'X';
            row2[4 * i + 1] = '.';
            row2[4 * i + 2] = 'X';
            row3[4 * i] = 'X';
            row3[4 * i + 1] = 'X';
            row3[4 * i + 2] = 'X';
            row4[4 * i] = '.';
            row4[4 * i + 1] = '.';
            row4[4 * i + 2] = 'X';
            row5[4 * i] = 'X';
            row5[4 * i + 1] = 'X';
            row5[4 * i + 2] = 'X';
        }
    }

  printf("%s\n", row1);

    printf("%s\n", row2);

    printf("%s\n", row3);

    printf("%s\n", row4);

    printf("%s", row5);

    return 0;
}

by wsyhb @ 2020-12-25 15:43:56

@Zhu_Yi printf 输出字符数组时,通常通过识别 '\0' 来确定字符串的结尾,'\0' 是字符串的结束符号。因此,在输出并非直接输入且未改变长度的字符串时,在末尾加上 '\0' 是一个好习惯。

上述代码只需加入如下语句即可 AC:

row1[4*n-1]=row2[4*n-1]=row3[4*n-1]=row4[4*n-1]=row5[4*n-1]='\0';

|