題目:
acm.hust.edu.cn/vjudge/roblem/viewproblem.action?id=19191
這道題本身難度不大,但輸入輸出時需要特別小心,一不留神就會出問題。
對於輸入,如果要讀入一行時:
沒有空白字元,則直接使用scanf和%s即可;
有空白字元,使用gets,但要小心溢位;fgets一直不能正常工作,有待研究(gets會將緩衝區多餘的\n扔掉,fgets會保留在字串中);
對於要讀入單個字元時:
使用scanf和「 %c」進行捨棄空白字元(注意空格),並且最後需要getchar來吃掉最後的回車;
scanf和「%c」會讀入空白字元,和getchar相同。
只忽略回車,不忽略空格時,可將getchar放在以c==『\n'為迴圈條件的do while中。
我心中的理想**如下:
1 #include2 #include3const
int len=5;4
const
int max=100;5
const
int y=;
6const
int x=;
7char
map[len][len];
8int tra[110];9
bool legal(int
pos)
12void
pmap()19}
20int
main()
40bool ok=true;41
char
c;42
while(scanf("
%c",&c),c!='0'
)49 map[bx][by]=map[nx][ny];
50 map[nx][ny]='';
51 bx=nx;by=ny;52}
53getchar();
54if
(first)
55 first=false;56
else
57 printf("\n"
);58 printf("
puzzle #%d:\n
",++case);
59if
(ok)
60pmap();
61else
62 printf("
this puzzle has no final configuration.\n");
63}64return0;
65 }
紫書章三習題5 UVA 227 Puzzle
這道題,主要學習了 1.怎麼將 寫的好看 簡潔 之前 都是冗長冗長的,能不動腦子就不動腦子。switch,2.freopen d input.txt r stdin 的運用,提交的時候一定要加 3.fgets 陣列,maxn,stdin 輸入到陣列中,長度為不超過maxn 1,然後在末尾加上 0,所...
UVA227解題報告
因為網格中存在空格所以用gets錄入,首先錄入一行資料,如果第乙個字元為 z 則break退出迴圈 其次是對指令的接受與處理,接受指令可以用getchar 遇到換行符跳過。處理也很簡單,在接受指令之前我們需要乙個定位操作,找到空格所在的位置,然後根據指令確定要移動到的座標,用swap函式交換資料,更...
習題3 5 謎題 UVa227
演算法競賽入門經典 第2版 第3章 陣列和字串 習題3 5 謎題 uva227 感悟。1 直接看英文原題的輸入輸出樣例,在題意理解要求上省了許多力。2 程式難在輸入輸出處理,難在字元讀取,策略 寫一段 跟蹤除錯一段,正確之後才往下寫,其中發現不少錯誤,一氣呵成,寫出無誤的 真的是很難很難啊。3 對g...