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 韓信點兵 相傳韓信才智過人,從不直接清點自己軍隊的人數,只要讓士兵先後以三...