C语言20分求助

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

litbxkku @ 2023-11-18 10:31:13

#include<stdio.h>
#include<math.h>
#include<string.h>
int main(){
    char a[10][6][4]={0};
    int i,j,n,t,l;
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==0||i==4||j==0||j==2)a[0][i][j]='X';
            else a[0][i][j]='.';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(j==2)a[1][i][j]='X';
            else a[1][i][j]='.';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==1&&j!=2||i==3&&j!=0)a[2][i][j]='.';
            else a[2][i][j]='X';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==1&&j!=2||i==3&&j!=2)a[3][i][j]='.';
            else a[3][i][j]='X';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(j==1||i!=2&&j==0&&i>2)a[4][i][j]='.';
            else a[4][i][j]='X';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==1&&j!=0||i==3&&j!=2)a[5][i][j]='.';
            else a[5][i][j]='X';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==1&&j!=0||i==3&&j==1)a[6][i][j]='.';
            else a[6][i][j]='X';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==0||j==2)a[7][i][j]='X';
            else a[7][i][j]='.';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==1&&j==1||i==3&&j==1)a[8][i][j]='.';
            else a[8][i][j]='X';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==1&&j==1||i==3&&j!=2)a[9][i][j]='.';
            else a[9][i][j]='X';
        }
    }
    char b[120];
    scanf("%d %s",&n,b);
    l=strlen(b);
    for(i=0;i<5;i++){
        for(t=0;t<l;t++){
            if(t)printf(".");
            for(j=0;j<3;j++){
                printf("%c",a[b[t]-'0'][i][j]);
        }
    }
        if(i!=4)printf("\r\n");
    }
    return 0;
}

by I_am_a_big_juruo @ 2023-11-18 11:02:37

你的4输出的有问题

帮你加了一个特判 (我是个懒人)

#include<stdio.h>
#include<math.h>
#include<string.h>
int main(){
    char a[10][6][4]={0};
    int i,j,n,t,l;
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==0||i==4||j==0||j==2)a[0][i][j]='X';
            else a[0][i][j]='.';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(j==2)a[1][i][j]='X';
            else a[1][i][j]='.';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==1&&j!=2||i==3&&j!=0)a[2][i][j]='.';
            else a[2][i][j]='X';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==1&&j!=2||i==3&&j!=2)a[3][i][j]='.';
            else a[3][i][j]='X';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==2&&j==1)a[4][i][j]='X';//特判加在这
            else if(j==1||i!=2&&j==0&&i>2)a[4][i][j]='.';
            else a[4][i][j]='X';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==1&&j!=0||i==3&&j!=2)a[5][i][j]='.';
            else a[5][i][j]='X';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==1&&j!=0||i==3&&j==1)a[6][i][j]='.';
            else a[6][i][j]='X';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==0||j==2)a[7][i][j]='X';
            else a[7][i][j]='.';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==1&&j==1||i==3&&j==1)a[8][i][j]='.';
            else a[8][i][j]='X';
        }
    }
    for(i=0;i<5;i++){
        for(j=0;j<3;j++){
            if(i==1&&j==1||i==3&&j!=2)a[9][i][j]='.';
            else a[9][i][j]='X';
        }
    }
    char b[120];
    scanf("%d %s",&n,b);
    l=strlen(b);
    for(i=0;i<5;i++){
        for(t=0;t<l;t++){
            if(t)printf(".");
            for(j=0;j<3;j++){
                printf("%c",a[b[t]-'0'][i][j]);
            }
        }
        if(i!=4)printf("\r\n");
    }
    return 0;
}

|