[問題]請神人幫我看一下這題有關計算進位的Code

看板C_and_CPP (C/C++)作者 (小豆豆)時間15年前 (2010/07/28 15:16), 編輯推噓4(4011)
留言15則, 3人參與, 最新討論串1/1
這是 Online Judge p015 題目問說兩個小於十位的整數相加有幾個進位 最後顯示進位數目即可 #include <iostream> int main(){ using namespace std; string nu_1,nu_2; int a[15],b[15]; int carry=0,cun_cary=0; cin>>nu_1>>nu_2; do{//6 cun_cary=0; for(int i=0;i<=14;i++){//3 a[i]=0; b[i]=0; }//3 for(int i=0;i<nu_1.size();i++){//2 int reg; reg=nu_1[i]; a[i]=reg-48; }//2 for(int i=0;i<nu_2.size();i++){//1 int reg1; reg1=nu_2[i]; b[i]=reg1-48; }//1 carry=0; for(int i=0;i<=14;i++){//4 if(a[i]+b[i]+carry>=10){ carry=1; cun_cary++; cout<<"*"<<i<<endl;} else carry=0; }//4 if(cun_cary==0) cout<<"No carry operation."<<endl; else if(cun_cary==1) cout<<cun_cary<<" carry operation."<<endl; else cout<<cun_cary<<" carry operations."<<endl; cin>>nu_1>>nu_2; }while(nu_1[0]!='0'&&nu_2[0]!='0');//6 return 0; } 我的做法是把兩個數字用字串方式讀入 然後再分別放到陣列裡相加 小弟測不出哪邊有Bug 上傳上去第二個case(WA:2)就出錯了 請各位大神幫小弟看看 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.216.83

07/28 15:17, , 1F
* i是我在debug時設的 忘記刪了
07/28 15:17, 1F

07/28 16:03, , 2F
你說Online Judge誰知道是哪個Online Judge = =a
07/28 16:03, 2F

07/28 16:41, , 3F
應該是結束條件有問題, 他說兩個 0 結束, 並不代表有
07/28 16:41, 3F

07/28 16:41, , 4F
0 就要結束
07/28 16:41, 4F

07/28 16:47, , 5F
沒有縮排的程式碼, 很難看得懂, 我相信沒有任何一本書
07/28 16:47, 5F

07/28 16:48, , 6F
會教你這樣寫程式, 看不懂自然也不會有人想回答
07/28 16:48, 6F

07/28 16:49, , 7F
好我會改進~ 我結束條件有&&
07/28 16:49, 7F

07/28 16:56, , 8F
= =你沒看懂, 如果測資 999 0 應該也要能跑
07/28 16:56, 8F

07/28 17:00, , 9F
你進位的方向剛好相反
07/28 17:00, 9F

07/28 17:15, , 10F
我999 0可以跑 阿我進位調整過來還是有問題 變WA:1 = =
07/28 17:15, 10F

07/28 17:20, , 11F
只有第一次 ??? 0 或 0 ??? 可以跑...
07/28 17:20, 11F

07/28 17:32, , 12F
幹你好神... AC了 感謝你!!!!! 真的是那邊~
07/28 17:32, 12F

07/28 17:34, , 13F
我在DEBUG時完全沒想到要去檢查那邊= = 謝謝你
07/28 17:34, 13F

07/28 17:38, , 14F
這時候用 comma 運算子把輸入跟測試條件寫在一起, do-
07/28 17:38, 14F

07/28 17:38, , 15F
while 儘量少用
07/28 17:38, 15F
文章代碼(AID): #1CJzauKa (C_and_CPP)
文章代碼(AID): #1CJzauKa (C_and_CPP)