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指点