c语言全WA, 求助

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

chaoscodes @ 2021-04-12 19:21:25

为什么过不去,求助。

```c

#include<stdio.h>
int main(){
int bitNum;

scanf("%d",&bitNum);

char num[150];
getchar();
for(int i=0;i<bitNum;i++){
    scanf("%c",&num[i]);
}//输入数值

char dotsRect[5][150][3];
for(int i=0;i<5;i++){
    for(int j=0;j<bitNum;j++){
        for(int k=0;k<3;k++){
            dotsRect[i][j][k]='.';
        }
    }
}//初始化
for(int i=0;i<bitNum;i++){//接下来填充符号数组,填充第i个符号的3X5块
    switch(num[i]-'0'){
        case 0:{
            dotsRect[0][i][0]='X';dotsRect[0][i][1]='X';dotsRect[0][i][2]='X';
            dotsRect[1][i][0]='X';dotsRect[1][i][1]='.';dotsRect[1][i][2]='X';
            dotsRect[2][i][0]='X';dotsRect[2][i][1]='.';dotsRect[2][i][2]='X';
            dotsRect[3][i][0]='X';dotsRect[3][i][1]='.';dotsRect[3][i][2]='X';
            dotsRect[4][i][0]='X';dotsRect[4][i][1]='X';dotsRect[4][i][2]='X';
            }break;
        case 1:{
            dotsRect[0][i][0]='.';dotsRect[0][i][1]='.';dotsRect[0][i][2]='X';
            dotsRect[1][i][0]='.';dotsRect[1][i][1]='.';dotsRect[1][i][2]='X';
            dotsRect[2][i][0]='.';dotsRect[2][i][1]='.';dotsRect[2][i][2]='X';
            dotsRect[3][i][0]='.';dotsRect[3][i][1]='.';dotsRect[3][i][2]='X';
            dotsRect[4][i][0]='.';dotsRect[4][i][1]='.';dotsRect[4][i][2]='X';
        }break;
        case 2:{
            dotsRect[0][i][0]='X';dotsRect[0][i][1]='X';dotsRect[0][i][2]='X';
            dotsRect[1][i][0]='.';dotsRect[1][i][1]='.';dotsRect[1][i][2]='X';
            dotsRect[2][i][0]='X';dotsRect[2][i][1]='X';dotsRect[2][i][2]='X';
            dotsRect[3][i][0]='X';dotsRect[3][i][1]='.';dotsRect[3][i][2]='.';
            dotsRect[4][i][0]='X';dotsRect[4][i][1]='X';dotsRect[4][i][2]='X';
        }break;
        case 3:{
            dotsRect[0][i][0]='X';dotsRect[0][i][1]='X';dotsRect[0][i][2]='X';
            dotsRect[1][i][0]='.';dotsRect[1][i][1]='.';dotsRect[1][i][2]='X';
            dotsRect[2][i][0]='X';dotsRect[2][i][1]='X';dotsRect[2][i][2]='X';
            dotsRect[3][i][0]='.';dotsRect[3][i][1]='.';dotsRect[3][i][2]='X';
            dotsRect[4][i][0]='X';dotsRect[4][i][1]='X';dotsRect[4][i][2]='X';
        }break;
        case 4:{
            dotsRect[0][i][0]='X';dotsRect[0][i][1]='.';dotsRect[0][i][2]='X';
            dotsRect[1][i][0]='X';dotsRect[1][i][1]='.';dotsRect[1][i][2]='X';
            dotsRect[2][i][0]='X';dotsRect[2][i][1]='X';dotsRect[2][i][2]='X';
            dotsRect[3][i][0]='.';dotsRect[3][i][1]='.';dotsRect[3][i][2]='X';
            dotsRect[4][i][0]='.';dotsRect[4][i][1]='.';dotsRect[4][i][2]='X';
        }break;
        case 5:{
            dotsRect[0][i][0]='X';dotsRect[0][i][1]='X';dotsRect[0][i][2]='X';
            dotsRect[1][i][0]='X';dotsRect[1][i][1]='.';dotsRect[1][i][2]='.';
            dotsRect[2][i][0]='X';dotsRect[2][i][1]='X';dotsRect[2][i][2]='X';
            dotsRect[3][i][0]='.';dotsRect[3][i][1]='.';dotsRect[3][i][2]='X';
            dotsRect[4][i][0]='X';dotsRect[4][i][1]='X';dotsRect[4][i][2]='X';
        }break;
        case 6:{
            dotsRect[0][i][0]='X';dotsRect[0][i][1]='X';dotsRect[0][i][2]='X';
            dotsRect[1][i][0]='X';dotsRect[1][i][1]='.';dotsRect[1][i][2]='.';
            dotsRect[2][i][0]='X';dotsRect[2][i][1]='X';dotsRect[2][i][2]='X';
            dotsRect[3][i][0]='X';dotsRect[3][i][1]='.';dotsRect[3][i][2]='X';
            dotsRect[4][i][0]='X';dotsRect[4][i][1]='X';dotsRect[4][i][2]='X';
        }break;
        case 7:{
            dotsRect[0][i][0]='X';dotsRect[0][i][1]='X';dotsRect[0][i][2]='X';
            dotsRect[1][i][0]='.';dotsRect[1][i][1]='.';dotsRect[1][i][2]='X';
            dotsRect[2][i][0]='.';dotsRect[2][i][1]='.';dotsRect[2][i][2]='X';
            dotsRect[3][i][0]='.';dotsRect[3][i][1]='.';dotsRect[3][i][2]='X';
            dotsRect[4][i][0]='.';dotsRect[4][i][1]='.';dotsRect[4][i][2]='X';
        }break;
        case 8:{
            dotsRect[0][i][0]='X';dotsRect[0][i][1]='X';dotsRect[0][i][2]='X';
            dotsRect[1][i][0]='X';dotsRect[1][i][1]='.';dotsRect[1][i][2]='X';
            dotsRect[2][i][0]='X';dotsRect[2][i][1]='X';dotsRect[2][i][2]='X';
            dotsRect[3][i][0]='X';dotsRect[3][i][1]='.';dotsRect[3][i][2]='X';
            dotsRect[4][i][0]='X';dotsRect[4][i][1]='X';dotsRect[4][i][2]='X';
        }break;
        case 9:{
            dotsRect[0][i][0]='X';dotsRect[0][i][1]='X';dotsRect[0][i][2]='X';
            dotsRect[1][i][0]='X';dotsRect[1][i][1]='.';dotsRect[1][i][2]='X';
            dotsRect[2][i][0]='X';dotsRect[2][i][1]='X';dotsRect[2][i][2]='X';
            dotsRect[3][i][0]='.';dotsRect[3][i][1]='.';dotsRect[3][i][2]='X';
            dotsRect[4][i][0]='X';dotsRect[4][i][1]='X';dotsRect[4][i][2]='X';
        }break;
    }
}
for(int row=0;row<5;row++){
    for(int i=0;i<bitNum;i++){
        if(i!=0){
            printf(".");
        }
        for(int line=0;line<3;line++){
            printf("%c",dotsRect[row][i][line]);
        }
    }
    printf("\n"); 
}//输出

by chaoscodes @ 2021-04-12 19:24:11

还有其中的scanf改成getchar也不行。。


by chaoscodes @ 2021-04-12 19:28:41

问题已解决。。其中回车输入是'\r\n',需要两个getchar()来抵消。。。


|