#include <stdio.h>
#include <stdlib.h>
#include <
string.h>
int main()
{
char a[
12][
12],d[
110][
12];
int b[
12][
12];
int r,c,con=
0;
while(~scanf(
"%d",&
r))
{
memset(b,0,
sizeof(b));
memset(d,0,
sizeof(d));
if(r==
0)
break;
con++
;
scanf("%d",&
c);
int x=
0;
for(
int i=
0; i<r; i++
)
scanf("%s%*c",a[i]);
for(
int i=
0; i<r; i++
)
for(
int j=
0; j<c; j++
)
{
if(a[i][j]!=
'*')
{
if(i-
1<
0||j-
1<
0||b[i-
1][j]==-
1||b[i][j-
1]==-
1)
b[i][j]=++
x;
}
else
b[i][j]=-
1;
}
for(
int i=
0; i<r; i++
)
{
for(
int j=
0; j<c; j++
)
{
printf("%d ",b[i][j]);
}
printf("\n");
}
if(con>
1)
printf("\n");
printf("puzzle #%d:\n",con);
int flag=
0;
printf("Across\n");
for(
int i=
0; i<r; i++
)
{
for(
int j=
0; j<c; j++
)
{
if((j-
1<
0||b[i][j-
1]==-
1)&&b[i][j]>
0)
{
if(b[i][j]>
1)
printf("\n");
printf("=.",b[i][j]);
flag=
1;
}
if(flag)
{ if(a[i][j]!=
'*')
printf("%c",a[i][j]);
}
}
flag=
0;
}
printf("\n");
flag=
0;
int p=
0,q=
0;
printf("Down\n");
for(
int i=
0; i<c; i++
)
{
for(
int j=
0; j<r; j++
)
{
if((j-
1<
0||b[j-
1][i]==-
1)&&b[j][i]!=-
1)
{ d[p][q]=
'\0';
p=
b[j][i];
flag=
1;
q=
0;
}
if(flag)
{ if(a[j][i]!=
'*')
d[p][q++]=
a[j][i];
}
}
flag=
0;
}
for(
int i=
0;i<=x;i++
)
if(d[i][
0])
printf("=.%s\n",i,d[i]);
}
return 0;
}
转载于:https://www.cnblogs.com/Wangwanxiang/p/6415292.html
相关资源:数据结构—成绩单生成器
转载请注明原文地址: https://win8.8miu.com/read-1495641.html