救我啊!要被搞疯了

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

轻绘 @ 2020-10-06 16:05:45

#include<bits/stdc++.h>
using namespace std;
int n;
int a[200];
void out1(int x){
    if(x==0){
        printf("XXX");
    }
    if(x==1){
        printf("..X");
    }
    if(x==2){
        printf("XXX");
    }
    if(x==3){
        printf("XXX");
    }
    if(x==4){
        printf("X.X");
    }
    if(x==5){
        printf("XXX");
    }
    if(x==6){
        printf("XXX");
    }
    if(x==7){
        printf("XXX");
    }
    if(x==8){
        printf("XXX");
    }
    if(x==9){
        printf("XXX");
    }
}
void out2(int x){
    if(x==0){
        printf("X.X");
    }
    if(x==1){
        printf("..X");
    }
    if(x==2){
        printf("..X");
    }
    if(x==3){
        printf("..X");
    }
    if(x==4){
        printf("X.X");
    }
    if(x==5){
        printf("X..");
    }
    if(x==6){
        printf("X..");
    }
    if(x==7){
        printf("..X");
    }
    if(x==8){
        printf("X.X");
    }
    if(x==9){
        printf("X.X");
    }
}
void out3(int x){
    if(x==0){
        printf("X.X");
    }
    if(x==1){
        printf("..X");
    }
    if(x==2){
        printf("XXX");
    }
    if(x==3){
        printf("XXX");
    }
    if(x==4){
        printf("XXX");
    }
    if(x==5){
        printf("XXX");
    }
    if(x==6){
        printf("XXX");
    }
    if(x==7){
        printf("..X");
    }
    if(x==8){
        printf("XXX");
    }
    if(x==9){
        printf("XXX");
    }
}
void out4(int x){
    if(x==0){
        printf("X.X");
    }
    if(x==1){
        printf("..X");
    }
    if(x==2){
        printf("X..");
    }
    if(x==3){
        printf("..X");
    }
    if(x==4){
        printf("..X");
    }
    if(x==5){
        printf("..X");
    }
    if(x==6){
        printf("X.X");
    }
    if(x==7){
        printf("..X");
    }
    if(x==8){
        printf("X.X");
    }
    if(x==9){
        printf("..X");
    }
}
void out5(int x){
    if(x==0){
        printf("XXX");
    }
    if(x==1){
        printf("..X");
    }
    if(x==2){
        printf("XXX");
    }
    if(x==3){
        printf("XXX");
    }
    if(x==4){
        printf("..X");
    }
    if(x==5){
        printf("XXX");
    }
    if(x==6){
        printf("XXX");
    }
    if(x==7){
        printf("..X");
    }
    if(x==8){
        printf("XXX");
    }
    if(x==9){
        printf("XXX");
    }
}
int main(){
    //freopen("2.out","w",stdout);
    scanf("%d",&n);
    getchar();
    for(int i=1;i<=n;i++){
        char x;
        x=getchar();
        a[i]=x-'0';
    } 
    for(int i=1;i<=n;i++){
        out1(a[i]);
        if(i!=n){
            printf(".");
        }
    } 
    printf("\n");
    for(int i=1;i<=n;i++){
        out2(a[i]);
        if(i!=n){
            printf(".");
        }
    } 
    printf("\n");
    for(int i=1;i<=n;i++){
        out3(a[i]);
        if(i!=n){
            printf(".");
        }
    } 
    printf("\n");
    for(int i=1;i<=n;i++){
        out4(a[i]);
        if(i!=n){
            printf(".");
        }
    } 
    printf("\n");
    for(int i=1;i<=n;i++){
        out5(a[i]);
        if(i!=n){
            printf(".");
        }
    } 
    printf("\n");
    return 0;
} 

和答案输出一模一样,全WA


by haraki @ 2020-10-06 16:10:10

@上杉越 您在输出第一个字符的时候,前面应当没有那一列. 请自查 谢谢


by DIgnited @ 2020-10-06 16:11:21

打表


by 洛璟 @ 2020-10-06 16:14:10

@haraki_argon hxd你看看没有多输出的,也说了和样例输出一模一样,这点没必要说


by 轻绘 @ 2020-10-06 16:14:11

@haraki_argon 您仔细看我在第一个字符前没输‘.’


by Wu_Ren @ 2020-10-06 16:22:18

@上杉越

兄啊,在 windows 下换行符是 \r\n

所以输入里的

    scanf("%d",&n);
    getchar();

要改成

    scanf("%d",&n);
    getchar();getchar();

by haraki @ 2020-10-06 16:22:25

@上杉越 我详细看了代码。通过洛谷IDE的调试,估计是linux下的换行符不同的原因,是\r\n。建议不要使用getchar读换行符,使用string或者char[]读入再分析。


by 轻绘 @ 2020-10-06 16:26:03

@Wu_Ren 是这个问题 谢谢帮忙

非常感谢


by 轻绘 @ 2020-10-06 16:26:37

@haraki_argon 是这个问题 真的很感谢


by 轻绘 @ 2020-10-06 16:27:00

感谢各位大佬的帮助


by Accepted喵 @ 2020-10-06 16:28:15

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
char W[10][5][3]={
    {//0
        'X','X','X',
        'X','.','X',
        'X','.','X',
        'X','.','X',
        'X','X','X',
    },
    {//1
        '.','.','X',
        '.','.','X',
        '.','.','X',
        '.','.','X',
        '.','.','X',
    },
    {//2
        'X','X','X',
        '.','.','X',
        'X','X','X',
        'X','.','.',
        'X','X','X',
    },
    {//3
        'X','X','X',
        '.','.','X',
        'X','X','X',
        '.','.','X',
        'X','X','X',
    },
    {//4
        'X','.','X',
        'X','.','X',
        'X','X','X',
        '.','.','X',
        '.','.','X',
    },
    {//5
        'X','X','X',
        'X','.','.',
        'X','X','X',
        '.','.','X',
        'X','X','X',
    },
    {//6
        'X','X','X',
        'X','.','.',
        'X','X','X',
        'X','.','X',
        'X','X','X',
    },
    {//7
        'X','X','X',
        '.','.','X',
        '.','.','X',
        '.','.','X',
        '.','.','X',
    },
    {//8
        'X','X','X',
        'X','.','X',
        'X','X','X',
        'X','.','X',
        'X','X','X',
    },
    {//9
        'X','X','X',
        'X','.','X',
        'X','X','X',
        '.','.','X',
        'X','X','X',
    }
};
int n;
char s[110];
int main(){
    cin>>n;
    for(int i=0;i<n;i++) cin>>s[i];
    for(int i=0;i<5;i++){
        for(int j=0;j<n;j++){
            for(int k=0;k<3;k++){
                cout<<W[s[j]-'0'][i][k];
            }
            if(j!=n-1) cout<<'.';
        }
        cout<<endl;
    }
    return 0;
}

|