IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> Puzzle UVA - 227 --C语言 -> 正文阅读

[C++知识库]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

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 01:47:57  更:2022-09-15 01:51:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 15:16:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码