UVA 227 Puzzle 輸入輸出

2022-09-03 19:48:16 字數 1335 閱讀 6429

題目:

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 #include

3const

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...