[問題] 200階層 不會跑

看板C_and_CPP (C/C++)作者 (香香)時間16年前 (2010/05/12 19:29), 編輯推噓8(8022)
留言30則, 7人參與, 最新討論串1/1
遇到的問題:CPMPILE會過 但是執行卻什麼都沒跑 開發平台: (gnuC, Linux) #include<stdio.h> #include<stdlib.h> int main() { int i,j,a[2048],N=200; for(i=0;i<=2048;i++) { a[i]=0; } a[0]=1; for(i=1;i<=N;i++) { for(j=0;j<sizeof(a)/sizeof(a[0]-1);j++) { a[j+1] += a[j]/10; a[j] %= 10; } } for(i=sizeof(a)/sizeof(a[0])-1;i>=0;i--) { if(a[i] != 0) break; } for( ;i>=0;i--) { printf("%d",a[i]); printf("\n"); } } 補充說明:謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.208.149

05/12 19:44, , 1F
縮排,好嗎?
05/12 19:44, 1F
抱歉 縮好了 ※ 編輯: priest0204 來自: 140.130.208.149 (05/12 19:49)

05/12 19:52, , 2F
沒想到竟然是l大來推縮排XD
05/12 19:52, 2F

05/12 19:53, , 3F
話說, 你幹麻用一堆sizeof()去跑迴圈啊?? 2048/2047就
05/12 19:53, 3F

05/12 19:53, , 4F
直接寫啊; 不然, sizeof(a[0]-1)與sizeof(a[0])-1到底是
05/12 19:53, 4F

05/12 19:54, , 5F
真要這樣打還是typo啊@_@"
05/12 19:54, 5F

05/12 19:54, , 6F
先說第一個問題, int a[2048], a只能用0~2047, 第一個迴
05/12 19:54, 6F

05/12 19:54, , 7F
圈會存取不正確的位址....
05/12 19:54, 7F

05/12 19:55, , 8F
階層怎麼程式碼裡面我都沒看到乘法運算子=.=
05/12 19:55, 8F

05/12 19:57, , 9F
另外, 這個code是用a[2048]模擬大數寫階層?? 好像沒看到
05/12 19:57, 9F

05/12 19:57, , 10F
乘法啊?? 被搶推了....XD
05/12 19:57, 10F

05/12 20:00, , 11F
大概是這樣吧http://codepad.org/hDkZGvpg
05/12 20:00, 11F

05/12 20:00, , 12F
另外, 跑出來結果就只有一開始的a[0]=1;會有個1啊....
05/12 20:00, 12F

05/12 20:01, , 13F
所以跑出來就印個1而已, 因為也沒地方有在算階層@_@"
05/12 20:01, 13F

05/12 20:04, , 14F
抱歉 我PO的時候漏打一行*的 感謝各位
05/12 20:04, 14F

05/12 20:04, , 15F
x大沒順便修一下邊界XD
05/12 20:04, 15F

05/12 20:06, , 16F
我copy X大的code 還是一樣捏 跟我原本的一樣 不會跑
05/12 20:06, 16F

05/12 20:06, , 17F
是0~2047 出在這邊嘛?
05/12 20:06, 17F

05/12 20:07, , 18F
printf("%d",sizeof(a)/4);
05/12 20:07, 18F

05/12 20:09, , 19F
奇怪 = =a 看這個吧..http://codepad.org/z5Mvoe5p
05/12 20:09, 19F

05/12 20:28, , 20F
x大新的code, 7與17行的SIZE都要換成SIZE-1才對:)
05/12 20:28, 20F

05/12 20:29, , 21F
其實我用DevC++兩個都2048也有結果, 不過a[2048]是不應
05/12 20:29, 21F

05/12 20:29, , 22F
該用的:)
05/12 20:29, 22F

05/12 20:30, , 23F
7的話改成<SIZE也可以:)
05/12 20:30, 23F

05/12 20:33, , 24F
Err~~第11行也應該只能跑到SIZE-1....Orz
05/12 20:33, 24F

05/12 20:35, , 25F
orz 經驗不足隱藏的BUG還是一堆 我不是大大阿~"~
05/12 20:35, 25F

05/12 22:19, , 26F
好難懂 問題到底出在哪阿 ~,~a
05/12 22:19, 26F

05/12 23:09, , 27F
修改了一下x大的傑作 http://codepad.org/V0xxO7jO
05/12 23:09, 27F

05/13 01:04, , 28F
感謝樓上 開竅了@@
05/13 01:04, 28F

05/13 17:05, , 29F
我的可以跑到171!喔!!!!但是超過200!就要另想辦法了喔!!!
05/13 17:05, 29F

05/13 17:20, , 30F
陣列裡面設定多一點就好了阿 幾階有差嗎
05/13 17:20, 30F
文章代碼(AID): #1Bwf4hd9 (C_and_CPP)
文章代碼(AID): #1Bwf4hd9 (C_and_CPP)