Uva-232 - Crossword Answers-AC

来源:互联网 发布:c语言中如何产生随机数 编辑:程序博客网 时间:2024/06/05 11:09

水题,读懂题,注意格式(不是第一组数据的就在输入与输出之间加空行),一遍A。

AC代码:

#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){    char grid[15][15];    int a,b,i,j,k,t=0,n[15][15];    while(scanf("%d",&a)&&a!=0)    {        scanf("%d",&b); getchar();        for (i=0;i<a;i++)            gets(grid[i]);        k=0; memset(n,0,sizeof(n));        for (i=0;i<a;i++)            for (j=0;j<b;j++)            {                if (i==0&&grid[i][j]!='*')                    n[i][j]=++k;                else if (j==0&&grid[i][j]!='*')                    n[i][j]=++k;                else if (grid[i][j-1]=='*'&&grid[i][j]!='*')                    n[i][j]=++k;                else if (grid[i-1][j]=='*'&&grid[i][j]!='*')                    n[i][j]=++k;            }        if (t) putchar('\n');        printf("puzzle #%d:\nAcross\n",++t);        for (i=0;i<a;i++)            for (j=0;j<b;j++)            {                if (n[i][j]&&(j==0||grid[i][j-1]=='*'))                {                    printf("%3d.",n[i][j]);                    for (k=j;k<b&&grid[i][k]!='*';k++)                        putchar(grid[i][k]);                    putchar('\n');                }            }        printf("Down\n");        for (i=0;i<a;i++)            for (j=0;j<b;j++)            {                if (n[i][j]&&(i==0||grid[i-1][j]=='*'))                {                    printf("%3d.",n[i][j]);                    for (k=i;k<a&&grid[k][j]!='*';k++)                        putchar(grid[k][j]);                    putchar('\n');                }            }    }    return 0;}


 

0 0
原创粉丝点击