Re: [問題] 在dev c++測試過了 在測驗網站上測資不 …

看板C_and_CPP作者 (非天夜翔)時間15年前 (2009/10/20 18:05), 編輯推噓5(502)
留言7則, 2人參與, 最新討論串4/4 (看更多)
※ 引述《tw00088437 (喵貓 loves fish)》之銘言: : 噢感謝兩位回答 和舉出我108000和100800之類的會掛@@ : 現在我修正過了 在最下面 : 不過問題識 : 1. 我現在大概只會基本的function 迴圈 array 以上兩位的看不太懂說@@? a008. 中文大寫數字 AC (6ms, 2.3MB) void show(int a) { string word[] = {"零","壹","貳","參","肆","伍","陸","柒","捌","玖"}; string unit[] = { "","拾","佰","仟","萬","拾","佰","仟","億","拾"}; // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 string num[11] = "零"; int b,c; ^^^^^^^^^^^^^ 漏掉宣告 d,以及初始化 b 改成 int b = 0,c,d; int zero = 0; // 轉換為中文,並存於 num,以 array 查詢法,取代原本的 switch case while(a != 0) { c = a % 10; num[b] = word[c]; b++; a /= 10; } b--; for(c = b ; c >= 0 ; c--) { // 若 num[c] != "零" if( num[c] != word[0] ) { // zero 紀錄前面的數字出現 0 的次數 // 當 zero > 0 ,則表示前面曾出現 0 ,故先顯示"零" if(zero > 0) { cout << word[0]; zero = 0; } // 以 array 查詢法,取代原本的 switch case cout << num[c] << unit[c]; // 紀錄最後一次不為 0 的位置 d = c; } else { // d % 4 == 0 表示已經顯示過 unit // 在 0 <= zero < 4 範圍中,顯示 (d - zero) % 4 == 0 的 unit // zero >= 4 的時候不顯示,因為前面已經顯示過 if(d % 4 != 0 && zero >= 0 && zero < 4 && (d - zero) % 4 == 0) { cout << unit[d-zero]; } zero++; } } } int main() { int a; while (cin>> a) { show(a); cout << endl; } system("pause"); return 0; } : 2.改過之後第七測資過了 現在是死第八個 : 100200應該要"十萬零兩佰" 我沒有那個零 Orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.9.2

10/21 12:19, , 1F
實際跑過怎麼好像是屍體=_= 啥都沒
10/21 12:19, 1F
※ 編輯: csihcs 來自: 211.74.9.2 (10/21 23:55)

10/22 01:42, , 2F
好像還是掛 這次好像是陣列超出範圍@@?
10/22 01:42, 2F

10/22 10:18, , 3F
你是不是改錯了什麼~~
10/22 10:18, 3F

10/22 10:19, , 4F
我上傳這個code 已經AC了呀
10/22 10:19, 4F

10/22 19:27, , 5F
真的嘛@@!?
10/22 19:27, 5F

10/22 19:38, , 6F
噢 謝謝: )
10/22 19:38, 6F

10/22 19:45, , 7F
啊我發覺 是ac了 可是108000會錯誤@@?
10/22 19:45, 7F
文章代碼(AID): #1AtVlXu6 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1AtVlXu6 (C_and_CPP)