首页 > 其他 > 详细

UVA232

时间:2017-02-19 12:18:13      阅读:111      评论:0      收藏:0      [点我收藏+]
#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("%3d.",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("%3d.%s\n",i,d[i]);
    }
    return 0;
}

 

UVA232

原文:http://www.cnblogs.com/Wangwanxiang/p/6415292.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!