習題3 5 謎題

2021-07-15 13:44:11 字數 1121 閱讀 9435

題目:

有乙個5*5的網格,其中恰好有乙個格仔是空的,其他格仔各有乙個字母。一共有4種指

令:a, b, l, r,分別表示把空格上、下、左、右的相鄰字母移到空格中。輸入初始網格和指

令序列(以數字0結束),輸出指令執行完畢後的網格。如果有非法指令,應輸出「this

puzzle has no final configuration.」。

心得:1、wa了很長時間,最後從網上找了幾組測試資料發現是第乙個格仔就是空格的情況沒有考慮進去。

2、讀題!認真讀題!

**:

#include"stdio.h"

#include"string.h"

int main()

for(i=0;scanf("%c",&b[i])==1&&b[i]!='0';i++);

scanf("%c",&c);

for(j=0;j4)

a[s/10][s%10]=a[s/10+1][s%10];

a[s/10+1][s%10]=' ';

s=(s/10+1)*10+s%10;

}if(b[j]=='a')

a[s/10][s%10]=a[s/10-1][s%10];

a[s/10-1][s%10]=' ';

s=(s/10-1)*10+s%10;

}if(b[j]=='r')

a[s/10][s%10]=a[s/10][s%10+1];

a[s/10][s%10+1]=' ';

s=(s/10)*10+s%10+1;

}if(b[j]=='l')

a[s/10][s%10]=a[s/10][s%10-1];

a[s/10][s%10-1]=' ';

s=(s/10)*10+s%10-1;

}

} if(l>1)

printf("\n");

printf("puzzle #%d:\n",l++);

if(p==0)

printf("this puzzle has no final configuration.\n");

if(p==1)

for(i=0;i<5;i++)

}}

習題3 5 謎題(Puzzle)

謎題輸入 trgsj xdoki m vln wpabe uqhcf arrbbl0 include includeint main getchar 這個還真是難倒我了 for i 0 i 5 i for j 0 j 5 j if a i j i1 i,j1 j 記錄空格位置 printf n ch...

習題3 5 謎題 UVa227

演算法競賽入門經典 第2版 第3章 陣列和字串 習題3 5 謎題 uva227 感悟。1 直接看英文原題的輸入輸出樣例,在題意理解要求上省了許多力。2 程式難在輸入輸出處理,難在字元讀取,策略 寫一段 跟蹤除錯一段,正確之後才往下寫,其中發現不少錯誤,一氣呵成,寫出無誤的 真的是很難很難啊。3 對g...

習題3 5 謎題 UVa 227

puzzle uva 227 這道題目主要複雜度在輸入和輸出的處理,主要是輸入的網格矩陣有空格,所以要用getchar 來進行輸入,但是輸入的時候又要考慮換行和最後一組輸入的情況,輸入指令序列也是同樣的情況,可能有空白字元。模擬的時候注意陣列邊界即可。include include intmain ...