Puzzle UVA - 227 --C语言

(1)、输入:
1、先一行一行输入(五行);
2、判断是否是Z;
4、再将其存储在二维数组中;

(2)、进行操作指南的输入:
1、以零结尾的一维数组,注意回车;
(3)、再将操作指南一一对比可得:
1、if语句连接:
2、判断是否无效;
(4)、输出:
1、二维数组;其中注意空行;

输入用幂:
TRGSJ
XDOKI
M VLN
WPABE
UQHCF
ARRBBL0
ABCDE
FGHIJ
KLMNO
PQRS 
TUVWX
AAA
LLLL0
ABCDE
FGHIJ
KLMNO
PQRS 
TUVWX
AAAAABBRRRLL0
Z

首先,对于这道题,我遇到很多问题:

(1)、输入我遇到了问题:

1、一开始,我想使用直接输入二阶矩阵。但我不知道怎样输入Z的值。最后我利用了一行一行输入字符串。但我又遇到了问题,这个问题是我利用的是scanf("%s")输入的。但他遇到空格会直接变成另一行。我将它又换成了fgets()来解决它。但我又遇到了问题,它的'\n'会存在于新输入的之中。我将含有‘\n’将它删除,重新赋值;

2、a与c不匹配。我就将那个c匹配成a相等的,从我的方法角度来看就只有这个方法。

3、看我的输出用幂就知道了,这个题目其实有问题。没有明确告诉你,怎样搞,我是在网上找的AC的答案的写出来的。

4、

#include<stdio.h>
#include<string.h>
int main() {
	int i=0,j,k,l,m,n,flag=0,ph=0,pl=0;
	char a[1000],c[1000],b[1000];
	char x[100][100];
		int count=0;
	while(1){
		int error=0;
		for(i=0; i<5; i++) {
		fgets(a,10,stdin);
		if(a[0]=='\n'){
			i--;
			continue;
		}
			c[0]='Z';
			c[1]='\n';
			c[2]='\0';
			if(!strcmp(a,c)) {
				flag=1;
				break;
			}
			x[i][0]='\0';
			for(k=0; k<5; k++) {
				x[i][k]=a[k];
				if(x[i][k]==' '){
				ph=i;    
				pl=k;
				} 
			}
		}
		if(flag==1) {
			break;
		}

		int sum=0;
     while(1){
     	scanf("%c",&b[sum]);
     	if(b[sum]=='0'){
     		b[sum]='\0';
     		break;
		 }
     	sum++;
	 }
   
       for(l=0;l<sum;l++){
       	int ph1=ph,pl1=pl;
		char t; 
       	if(b[l]=='A'){   
       		ph--;
		   }
		else if(b[l]=='B'){
			ph++;
		}
		else if(b[l]=='L'){
			pl--;
		}
		else if(b[l]=='R'){
			pl++;
		}else if(b[l]!='\n'){
			error=1;
			break;
		}
		if(pl<0||pl>4||ph<0||ph>4){
		 error=1;	
		 break;
		}
		t=x[ph1][pl1];  
		x[ph1][pl1]=x[ph][pl];
		x[ph][pl]=t;
	   }
	   if(count!=0){
	   	printf("\n");
	   } 
	printf("Puzzle #%d:\n",++count);
	if(error==1){
		printf("This puzzle has no final configuration.\n");
	}
    else{  
	for(m=0;m<5;m++){
		for(n=0;n<5;n++){
			if(n<4)
		printf("%c ",x[m][n]);
		else {
			printf("%c\n",x[m][n]);
		}	
		}
	}
	   }
	}
	return 0;
}

TRGSJ
XDOKI
M VLN
WPABE
UQHCF
ARRBBL0
Puzzle #1:
T R G S J
X O K L I
M D V B N
W P   A E
U Q H C F
ABCDE
FGHIJ
KLMNO
PQRS
TUVWX
AAA
LLLL0

Puzzle #2:
  A B C D
F G H I E
K L M N J
P Q R S O
T U V W X
ABCDE
FGHIJ
KLMNO
PQRS
TUVWX
AAAAABBRRRLL0

Puzzle #3:
This puzzle has no final configuration.
Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值