×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
發表新討論
解題報告
#39229: C++懶人解
010521@mail.pcsh.ntpc.edu.tw
(Terry practice c++)
學校 : 新北市立板橋高級中學
編號 : 173875
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [140.120.220.44]
最後登入時間 :
2024-11-21 10:42:07
m932.
2. 蜜蜂觀察
--
2024年1月
APCS
| From: [101.137.141.255] | 發表日期 : 2024-01-24 20:25
先把基本變數都設定好,然後開一個char的陣列紀錄地圖char[25][25] = {};
接下來用一個for迴圈接收k個輸入的密碼code,用if-else把0~5的方向都各自寫好
例如:
if(code == 0){
ni++;
}else if(code == 1){
nj++;
}......
然後就可以輸出移動後的位置的字母
cout << arr[ni][nj];
最重要的是,輸出之前需要判定是否還在陣列範圍內,我是直接if(ni >= 0 && ni < n && nj >= 0 && nj < m)
ni 表示new_i
oi 表示old_i
如果new_i或new_j已經超出範圍,就直接拿old_i和old_j來用(需要在每次for迴圈的一開始 oi = ni; oj = nj;)
架構大致如下:
for(int i = 0; i < k; i++){
//略...
oi = ni;
oj = nj;
if(code == 0){
ni++;
}//判斷式略...
//略...
if(ni >= 0 && ni < n && nj >= 0 && nj < m){
cout << arr[ni][nj];
//略...
}else{
cout << arr[oi][oj];
//略...
ni = oi;
nj = oj;
}
}
最後最後再開一個紀錄字母的陣列bool alpha[26*2],每次輸出紀錄輸出的字母,思考大小寫如何儲存在同一個陣列(可以直接判斷大小寫再存),計算不同種類的字有多少後輸出即可。(^_^)
ZeroJudge Forum