Re: [問題] 大數加法的問題

看板C_and_CPP (C/C++)作者 (Zap)時間16年前 (2010/06/18 14:00), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串3/5 (看更多)
:引述《Bermuda ( )》之銘言: 剛剛依照Ber大的方法做了一下 #include<stdio.h> #include<string.h> #define LEN 100 int main(void) { char cInput1[LEN]; char cInput2[LEN]; int iInput1[LEN]; int iInput2[LEN]; int iLength,iHelp; int SUM[LEN]; int i; //做第一組陣列 scanf("%s",cInput1); iLength=strlen(cInput1); for(iHelp=0;iHelp<LEN;iHelp++) iInput1[iHelp]=0; for(iHelp=1;iHelp<=iLength;iHelp++) iInput1[LEN-iHelp]=(int)(cInput1[iLength-iHelp]-'0'); scanf("%s",cInput2); iLength=strlen(cInput2); for(iHelp=0;iHelp<LEN;iHelp++) iInput2[iHelp]=0; for(iHelp=1;iHelp<=iLength;iHelp++) iInput2[LEN-iHelp]=(int)(cInput2[iLength-iHelp]-'0'); //做第二組陣列 for(iHelp=LEN-1;iHelp>=0;iHelp--) { SUM[iHelp]=SUM[iHelp]+iInput1[iHelp]+iInput2[iHelp]%10; SUM[iHelp-1]=SUM[iHelp]+iInput1[iHelp]+iInput2[iHelp]/10; } //印出 for(i=0;i<100;i++) { printf("%d",SUM[i]); } system("PAUSE"); return 0; } 印出來會很奇怪 只能算到進位 就計算不出來 且例如100+200會印出4444444...44444300 我印出部分好像怪怪的=..= 可是我想不出來哪裡怪=..= -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.21.235.246 ※ 編輯: BlackZap 來自: 163.21.235.246 (06/18 14:05) ※ 編輯: BlackZap 來自: 163.21.235.246 (06/18 14:12)

06/18 14:18, , 1F
你的SUM[]先給初始值全歸零再試試看
06/18 14:18, 1F

06/18 14:29, , 2F
還有SUM的那個迴圈裡不會跑到SUM[-1]的情況嗎??
06/18 14:29, 2F
文章代碼(AID): #1C6mjyUq (C_and_CPP)
文章代碼(AID): #1C6mjyUq (C_and_CPP)