一直不对,我甚至照着一份答案全改了,连格式都一样,还是不对,要崩溃了qaq

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

bluetored @ 2022-10-01 20:12:19

#include <stdio.h>
char c[10][5][4]={
    "XXX",
    "X.X",
    "X.X",
    "X.X",
    "XXX",
    "..X",
    "..X",
    "..X",
    "..X",
    "..X",
    "XXX",
    "..X",
    "XXX",
    "X..",
    "XXX",
    "XXX",
    "..X",
    "XXX",
    "..X",
    "XXX",
    "X.X",
    "X.X",
    "XXX",
    "..X",
    "..X",
    "XXX",
    "X..",
    "XXX",
    "..X",
    "XXX",
    "XXX",
    "X..",
    "XXX",
    "X.X",
    "XXX",
    "XXX",
    "..X",
    "..X",
    "..X",
    "..X",
    "XXX",
    "X.X",
    "XXX",
    "X.X",
    "XXX",
    "XXX",
    "X.X",
    "XXX",
    "..X",
    "XXX"
},ans[10][1000];
int  main ()
{
    int n,s=0,a;
    scanf("%d",&n);
while (n--)
{
    scanf ("%1d",&a);
    for (int i=0;i<5;i++)
    {
        for (int j=0;j<3;j++)
        {
        ans[i][j+s]=c[a][i][j];
        }
    for (int i=0;i<5;i++)
    {
        ans[i][s+3]='.';
    }    
        s=s+4;    
    }
}
    for (int i=0;i<5;i++)
    {
        for (int j=0;j<s-1;j++)
        {
            printf ("%c",ans[i][j]);
        }
        printf("\n");
    }
    return 0;
}

by simonG @ 2022-10-01 20:22:02

勿抄题解


by thrznb666 @ 2022-10-01 20:49:28

循环没写大括号默认是循环执行下一条语句

如:

for(int i=1;i<=n;i++)
    a=1;
b=1;

是将 a=1 循环执行 n 次,而 b=1 只执行一次。

本题正确代码:

#include <stdio.h>
char c[10][5][4]={
    "XXX",
    "X.X",
    "X.X",
    "X.X",
    "XXX",
    "..X",
    "..X",
    "..X",
    "..X",
    "..X",
    "XXX",
    "..X",
    "XXX",
    "X..",
    "XXX",
    "XXX",
    "..X",
    "XXX",
    "..X",
    "XXX",
    "X.X",
    "X.X",
    "XXX",
    "..X",
    "..X",
    "XXX",
    "X..",
    "XXX",
    "..X",
    "XXX",
    "XXX",
    "X..",
    "XXX",
    "X.X",
    "XXX",
    "XXX",
    "..X",
    "..X",
    "..X",
    "..X",
    "XXX",
    "X.X",
    "XXX",
    "X.X",
    "XXX",
    "XXX",
    "X.X",
    "XXX",
    "..X",
    "XXX"
},ans[10][1000];
int  main ()
{
    int n,s=0,a;
    scanf("%d",&n);
while (n--)
{
    scanf("%1d",&a);
    for (int i=0;i<5;i++)
    {
        for (int j=0;j<3;j++)
        {
            ans[i][j+s]=c[a][i][j];
        }
    }
        for (int i=0;i<5;i++)
        {
            ans[i][s+3]='.';
        }    
        s+=4;   
}
    for (int i=0;i<5;i++)
    {
        for (int j=0;j<s-1;j++)
        {
            printf("%c",ans[i][j]);
        }
        printf("\n");
    }
    return 0;
}

by bluetored @ 2022-10-02 09:05:53

@thrznb666 感谢dalao指点


|