UVA227 Puzzle (字符串题)
2015-02-03 14:07
411 查看
代码非常清晰,考虑到所有的情况
学习这种写法
学习这种写法
#include<stdio.h> #include<string.h> char str[10][10], Deal[3000]; char ch; int ErrorFlag; int x,y; int Flag; int main() { Flag=0; while( (gets(str[0])) != NULL && strcmp(str[0],"Z") ){ ErrorFlag = 0; for(int j = 0; j < strlen(str[0]); j++) if(str[0][j] == ' ') { x=0; y=j; } for(int i = 1; i < 5; i++ ) { gets(str[i]); for(int j = 0; j < strlen(str[i]); j++) if(str[i][j] == ' ') { x=i; y=j; } } while(gets(Deal) != NULL) { if(ErrorFlag == 0) { for(int i = 0 ; i < strlen(Deal); i++) { if(Deal[i] == 'A') { if(x == 0) { ErrorFlag = 1; break; } ch = str[x][y]; str[x][y] = str[x-1][y]; str[x-1][y] = ch; x--; } if(Deal[i] == 'B') { if(x == 4) { ErrorFlag = 1; break; } ch = str[x][y]; str[x][y] = str[x+1][y]; str[x+1][y] = ch; x++; } if(Deal[i] == 'R') { if(y == 4) { ErrorFlag = 1; break; } ch = str[x][y]; str[x][y] = str[x][y+1]; str[x][y+1] = ch; y++; } if(Deal[i] == 'L') { if(y == 0) { ErrorFlag = 1; break; } ch = str[x][y]; str[x][y] = str[x][y-1]; str[x][y-1] = ch; y--; } } } if(Deal[strlen(Deal) - 1] == '0') break; } if(Flag) printf("\n"); printf("Puzzle #%d:\n", ++Flag); if(ErrorFlag) { printf("This puzzle has no final configuration.\n"); continue; } for(int i = 0; i < 5; i++) { for(int j=0; j < 5; j++) { if(j) printf(" "); printf("%c", str[i][j]); } printf("\n"); } } return 0; }
相关文章推荐
- UVa 227 - Puzzle【字符串】
- UVA 227 Puzzle(基础字符串处理)
- UVa 227 Puzzle 【数组和字符串】【模拟】
- Uva 227 - Puzzle (数组和字符串)
- 习题 3-5 谜题 Puzzle (World Finals 1993) UVa 227
- Uva-227 - Puzzle-AC
- 紫书章三习题5——UVA 227 Puzzle
- UVa - 227 - Puzzle(gets(),scanf("%c",&x))
- UVa227 Puzzle
- UVa 227 Puzzle(习题3-5)
- UVA - 227 Puzzle
- UVa 227:Puzzle
- UVA - 227 Puzzle
- UVA227 puzzle
- 算法竞赛入门经典(紫书)第三章——Puzzle UVA-227
- Puzzle,UVa227
- 算法竞赛入门经典(第2版)习题3-5 谜题(Puzzle) Uva227
- 例题 3-5 谜题 uva227 Puzzle
- Puzzle UVA - 227
- 【Uva 227】 Puzzle