为何会wa点,本地与ide都无错呀

回复帖子

@陌尘缘_怜 2018-05-16 23:34 回复
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int n,l;
string a;
bool top[10]={1,0,1,1,0,1,1,1,1,1};
bool topleft[10]={1,0,0,0,1,1,1,0,1,1};
bool topright[10]={1,1,1,1,1,0,0,1,1,1};
bool middle[10]={0,0,1,1,1,1,1,0,1,1};
bool middleleft[10]={1,0,1,0,0,0,1,0,1,0};
bool middleright[10]={1,1,0,1,1,1,1,1,1,1};
bool bottom[10]={1,0,1,1,0,1,1,0,1,1};
void top_()
{
    for(int i=0;i<l;i++)
    {
        printf(" ");
        if(top[a[i]-'0']==true) for(int j=0;j<n;j++) printf("-");
        else for(int j=0;j<n;j++) printf(" ");
        printf(" ");
    }
    printf("\n");
}
void topleft_right()
{
    for(int j=0;j<n;j++)
    {
        for(int i=0;i<l;i++)
        {
            if(topleft[a[i]-'0']==true) printf("|");
            else printf(" ");
            for(int k=0;k<n;k++) printf(" ");
            if(topright[a[i]-'0']==true) printf("|");
            else printf(" ");
        } 
        printf("\n");
    }
}
void middle_()
{
    for(int i=0;i<l;i++)
    {
        printf(" ");
        if(middle[a[i]-'0']==true) for(int j=0;j<n;j++) printf("-");
        else for(int j=0;j<n;j++) printf(" ");
        printf(" ");
    }
    printf("\n");
}
void middleleft_right()
{
    for(int j=0;j<n;j++)
    {
        for(int i=0;i<l;i++)
        {
            if(middleleft[a[i]-'0']==true) printf("|");
            else printf(" ");
            for(int k=0;k<n;k++) printf(" ");
            if(middleright[a[i]-'0']==true) printf("|");
            else printf(" ");
        } 
        printf("\n");
    }
}
void bottom_()
{
    for(int i=0;i<l;i++)
    {
        printf(" ");
        if(bottom[a[i]-'0']==true) for(int j=0;j<n;j++) printf("-");
        else for(int j=0;j<n;j++) printf(" ");
        printf(" ");
    }
    printf("\n");
}
int main()
{
    scanf("%d",&n);
    cin>>a;
    l=a.size();
    top_();
    topleft_right();
    middle_();
    middleleft_right();
    bottom_();
    return 0;
}