UVa-232 Crossword Answers

#include<iostream>
#include<cstdio>
#include<cstring>
#include<ctype.h>
using namespace std;
int main()
{
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    int a,b,pcnt=0;
    while(cin>>a&&a)
    {
        if((++pcnt)>1) printf("
");
        printf("puzzle #%d:
",pcnt);
        cin>>b;
        char c[15][15]={};
        int n[15][15]={};
        for(int i=1;i<=a;i++)
            cin>>c[i]+1;
        int cnt=0;
        for(int i=1;i<=a;i++)
            for(int j=1;j<=b;j++)
                if((!isalpha(c[i][j-1])||!isalpha(c[i-1][j]))&&isalpha(c[i][j]))
                    n[i][j]=(++cnt);
        printf("Across
");
        for(int i=1;i<=a;i++)
            for(int j=1;j<=b;j++)
                if(!isalpha(c[i][j-1])&&isalpha(c[i][j]))
                {
                    printf("%3d.",n[i][j]);
                    for(int k=j;isalpha(c[i][k]);k++)
                        printf("%c",c[i][k]);
                    printf("
");
                }
        printf("Down
");
        for(int i=1;i<=a;i++)
            for(int j=1;j<=b;j++)
                if(!isalpha(c[i-1][j])&&isalpha(c[i][j]))
                {
                    printf("%3d.",n[i][j]);
                    for(int k=i;isalpha(c[k][j]);k++)
                        printf("%c",c[k][j]);
                    printf("
");
                }
    }
}
原文地址:https://www.cnblogs.com/windrises/p/4653059.html