输出一模一样,为啥全WA了

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

riene999 @ 2020-11-09 15:39:32

# include<stdio.h>

void f1(int x)
{
    if(x==0||x==2||x==3||x==5||x==6||x==7||x==8||x==9)
    printf("XXX");
    else if(x==1)
    printf("..X");
    else
    printf("X.X");

}
void f2(int x)
{
    if(x==0||x==4||x==8||x==9)
    printf("X.X");
    else if(x==1||x==2||x==3||x==7)
    printf("..X");
    else
    printf("X..");
}
void f3(int x)
{
    if(x==0)
    printf("X.X");
    else if(x==1||x==7)
    printf("..X");
    else
    printf("XXX");
}
void f4(int x)
{
    if(x==0||x==6||x==8)
    printf("X.X");
    else if(x==2)
    printf("X..");
    else
    printf("..X");

}
void f5(int x)
{
    if(x==1||x==4||x==7)
    printf("..X");
    else
    printf("XXX");
}
int main()
{
    int n;
    scanf("%d",&n);
    char a[100]; int b[100];
    for(int i=0;i<n;i++)
    {
        scanf("%c",&a[i]);
        if(a[i]=='\n')
        i--;
    }
    for(int i=0;i<n;i++)
    b[i]=a[i]-'0';
    for(int i=0;i<n;i++)
    {
        f1(b[i]);
        if(i==n-1)
        {printf("\n");
        break;}
        printf(".");
    }
    for(int i=0;i<n;i++)
    {
        f2(b[i]);
        if(i==n-1)
        {printf("\n");
        break;}
        printf(".");
    }
    for(int i=0;i<n;i++)
    {
        f3(b[i]);
        if(i==n-1)
        {printf("\n");
        break;}
        printf(".");
    }
    for(int i=0;i<n;i++)
    {
        f4(b[i]);
        if(i==n-1)
        {printf("\n");
        break;}
        printf(".");
    }
    for(int i=0;i<n;i++)
    {
        f5(b[i]);
        if(i==n-1)
        {
        break;}
        printf(".");
    }
    return 0;
}

by justinjia @ 2020-11-27 21:04:23

输出不一样,证据:


by justinjia @ 2020-11-27 21:10:31

你把51行的scanf("%d",&n);改成scanf("%d\n",&n);就好了,因为这样不知道为啥还会把换行符读进来。。。


|