演算法入門經典第二版 3 5 Puzzle

2021-08-11 09:13:26 字數 1254 閱讀 6064

1.提醒一下自己初始化很重要。

2.因為自己在solve()中使用for(int i = 0; i < strlen(command); i++)

沒注意到strlen(command)返回的是最長的命令輸入的字元個數而不是當前字元個數導致無法ac

eg:command 接收到 「lllrrraaa」的輸入 command為 「lllrrraaa」(末尾沒有\0)

然後 command 接收到 「bbb」的輸入後 command為 「bbbrrraaa」,strlen(command)返回的是乙個大於等於9的數(strlen()遇到』\0』才返回),而不是3;

3.自己為solve()新增了乙個整型變數 n用於統計字元個數解決了

下面是ac**

#include 

#include

char command[100000];

char a[5][5];

intpos[2]; //x:pos[0] y:pos[1]

bool f;

void swap(char *a,char *b)

void solve(int n) //原來的錯誤** solve()

else

f = false;

}else

if (c == 'b')

else

f = false;

}else

if (c == 'l')

else

f = false;

}else

if (c == 'r')

else

f = false;}}

}int main()

}getchar();

}int n = 0;

while(scanf(" %c",&command[n]) == 1)

getchar(); //捨棄命令輸入中的回車符

solve(n); //原來的錯誤** solve();

if(kase++) printf("\n");

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

if(f)

printf("\n");}}

else

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

}return

0;}

演算法競賽入門經典(第二版) 習題

習題2 5 include int main if 10 n b 10 b 5 確定末位四捨五入的情況 printf d 10 n b 1 else printf d 10 n b return 0 注意 要及時輸出,防止n越界 習題2 6 include void result int num,i...

《演算法競賽入門經典(第二版)》 隨筆

c語言中整數值用 d輸出,實數 浮點數 用 f輸出。kiss原則 keep it and stupid 獲得程式執行時間 包括鍵盤輸入時間 include printf 執行時間 2f n double clock clocks per sec 輸入個數未知時 while scanf d x 1 對...

《演算法競賽入門經典(第二版)》習題(二)

習題 2 1 水仙花數 輸出100 999中的所有水仙花數。若3位數abc滿足abc a b c 則稱其為水仙花數。例如 153 1 5 3 所以153是水仙花數。include intmain return0 習題 2 2 韓信點兵 相傳韓信才智過人,從不直接清點自己軍隊的人數,只要讓士兵先後以三...