uva227

来源:互联网 发布:华南师范大学大数据 编辑:程序博客网 时间:2024/06/05 06:17

这个题要是我英语好的话早就过了。一直没搞懂没那个空行是怎么输的。卡了我好几天,用了各种写法。迫不及待的想交这个题,因为看网上的代码简直乱的要死,烦透了。话不多说,英语不好是硬伤。

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>int main(){     int row,line;     int i,j;     int num=1,len;     char temp;     int count;    while(1)    {        char str[5][5];        gets(str[0]);        if(str[0][0]=='Z')        {            break;        }        gets(str[1]);        gets(str[2]);        gets(str[3]);        gets(str[4]);        for(i=0;i<5;i++)        {            for(j=0;j<5;j++)            {                if(str[i][j]==' ')                {                    row=i;                    line=j;                }            }        }        char arr[1000];        i=0;        while(scanf("%c",&arr[i])!=EOF&&arr[i]!='0')        {            i++;        }        len=i;        if(num>1)        {            printf("\n");        }         for(i=0;i<len;i++)        {            if(row==0&&arr[i]=='A'||row==4&&arr[i]=='B'||line==0&&arr[i]=='L'||line==4&&arr[i]=='R')            {                printf("Puzzle #%d:\n",num);                printf("This puzzle has no final configuration.\n");                num++;                memset(str,0,sizeof(str));                memset(arr,0,sizeof(arr));                getchar();                break;            }            else            {                if(arr[i]=='A')                {                    temp=str[row-1][line];                    str[row-1][line]=' ';                    str[row][line]=temp;                    row=row-1;                    line=line;                }                if(arr[i]=='B')                {                    temp=str[row+1][line];                    str[row+1][line]=' ';                    str[row][line]=temp;                    row=row+1;                    line=line;                }                if(arr[i]=='L')                {                    temp=str[row][line-1];                    str[row][line-1]=' ';                    str[row][line]=temp;                    row=row;                    line=line-1;                }                 if(arr[i]=='R')                {                    temp=str[row][line+1];                    str[row][line+1]=' ';                    str[row][line]=temp;                    row=row;                    line=line+1;                }            }        }        if(len==i)        {            printf("Puzzle #%d:\n",num);            for(i=0;i<5;i++)            {                count=0;                for(j=0;j<5;j++)                {                    if(count==0)                   {                        printf("%c",str[i][j]);                        count=1;                   }                   else                   {                       printf(" %c",str[i][j]);                   }                }                printf("\n");            }            num++;            memset(str,0,sizeof(str));            memset(arr,0,sizeof(arr));            getchar();            continue;        }    }    return 0;}


 

0 0