UVa 227 模拟
来源:互联网 发布:java程序性能优化 编辑:程序博客网 时间:2024/05/22 17:34
背景:做了两个多小时,各种出错,各种调试,看了是1993的final题。
学习1.结构体数据类型的定义:
typedef struct{ int x; int y; }place;//使用该类型定义变量。palce a,b;2.输入序列一旦被判断为无效的,不应该立即退出,还要处理剩下的该输入序列中的元素,避免被当做下一个输入序列。
3.一旦有变量值可以超出数组界线的情况就一定不要让该变量作为数组下标,方法是先判断是否越界:
if(blank.x>4||blank.x<0||blank.y<0||blank.y>4) { casse=0; continue;} /<span style="font-size:18px;color:#FF0000;">/横纵坐标的上下界都判断为好。列如:不要因为这里是x--就只判断x>0,有可能前面已经有x=6了,即使x--依然有x>4不满足。</span>
#include<stdio.h>typedef struct{ int x; int y; }place;int main(void){ char puzzle[5][5]; int count=1; while(1){ if(count-1) getchar(); puzzle[0][0]=getchar(); if(puzzle[0][0]=='Z') break; for(int i=1;i<5;i++) puzzle[0][i]=getchar(); for(int i=1;i<5;i++) { getchar(); for(int ii=0;ii<5;ii++) puzzle[i][ii]=getchar(); }place blank;for(int i=0;i<5;i++) for(int j=0;j<5;j++) if(puzzle[i][j]==' '){ blank.x=i; blank.y=j; }int k=0; int casse=1; while(1){if(!k) getchar();k++;char move;scanf("%c",&move);if(move=='\n') continue;if(move=='0') break;else if(move=='A'){blank.x--;if(blank.x>4||blank.x<0||blank.y<0||blank.y>4){ casse=0; continue;} puzzle[blank.x+1][blank.y]=puzzle[blank.x][blank.y];puzzle[blank.x][blank.y]=' ';}else if(move=='B'){blank.x++;if(blank.x>4||blank.x<0||blank.y<0||blank.y>4) { casse=0; continue;} puzzle[blank.x-1][blank.y]=puzzle[blank.x][blank.y];puzzle[blank.x][blank.y]=' ';}else if(move=='L'){blank.y--;if(blank.x>4||blank.x<0||blank.y<0||blank.y>4) { casse=0; continue;} puzzle[blank.x][blank.y+1]=puzzle[blank.x][blank.y];puzzle[blank.x][blank.y]=' ';}else if(move=='R'){blank.y++;if(blank.x>4||blank.x<0||blank.y<0||blank.y>4) { casse=0; continue;} puzzle[blank.x][blank.y-1]=puzzle[blank.x][blank.y];puzzle[blank.x][blank.y]=' ';}else { casse=0; continue;} }if(casse){if(count-1) printf("\n"); printf("Puzzle #%d:\n",count++);for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ if(j) printf(" "); printf("%c",puzzle[i][j]); } printf("\n"); } } else { if(count-1) printf("\n"); printf("Puzzle #%d:\n",count++); printf("This puzzle has no final configuration.\n"); } } return 0;}
0 0
- UVa 227 模拟
- uva 227 模拟题
- uva 227--模拟
- UVa 227 Puzzle 【数组和字符串】【模拟】
- UVA 10196 模拟题。。
- UVa 100 简单模拟
- UVa 602 简单模拟
- Uva 11039(排序+模拟)
- UVA 11039 模拟
- UVa 10189 Minesweeper (模拟)
- uva 11995 STL模拟
- uva 10205 模拟
- UVA 514 - Rails(模拟)
- uva 502(模拟)
- uva--188+模拟
- UVA Palindromes(模拟)
- UVA Artificial Intelligence?(模拟)
- UVA 401-Palindromes(模拟)
- unity摄像机和粒子特效
- 多线程网络编程(一)C#
- Halcon PDF文档(extension_package_programmers_manual)学习总结
- 改变技工学校英语教学困境的路径分析
- POJ1860 Currency Exchange【BellmanFord算法】【求正权回路】
- UVa 227 模拟
- 十个2015年可能会大火的设计趋势
- Java编程中“为了性能”尽量要做到的一些地方
- 005 12 A DAY With Cell There are over 5 Billion cell phones in use on the the planet RIGHT NOW How
- 使用交叉编译工具编译opencv的记录
- C#中字符串的不可变性
- C++与C#中this的作用
- NYOJ 1112 求次数 (map)
- CentOS 7 安装百度云linux版