2014-02-11 33 views
3

我正在使用ch來嘗試爲數組創建一個for循環,該數組將產生兩倍於其之前的數組值的循環,但是我一直在獲取相同的錯誤消息。哦,我也在ch中創建了這個,所以我不確定我的錯誤是否與此相關,或者我的代碼是否有缺陷。這裏是我的代碼,到目前爲止,我感覺好像它應該工作,但是我知道我失去了一些東西:如何使用數組來通過for循環?

ch> int a[10] 
ch> int i 
ch> for (i=1; i<10; i++)\ 
ch>  a[i] = 2 * a[i-1] 

這是我的代碼,我希望這種輸出

ch> a[9] 
512 

而是我得到

ch> a[9] 
0 

我想能夠打印所有9個值並排列表側,右對齊,在for循環中,即

0 1 
1 2 
2 4 
3 8 
4 16 
5 32 

當我嘗試右對齊printf(「%i%-5i」,i,a [i]);

我得到的錯誤警告:下標值10大於上限9

10 512 

當我想TI要打印如上。

+0

「但我不斷獲取相同的錯誤信息:」我不認爲所以。至少,我沒有看到你的問題。如果有錯誤,你肯定告訴過我們,不是嗎? – glglgl

+0

順便說一句,這個不祥的'ch'是什麼? – glglgl

+0

'Ch'是來自http://www.softintegration.com的教育的C解釋器 –

回答

5

這是因爲您尚未初始化a[0],默認情況下它可能設置爲0。由於a[1] = 2*a[0]它將等於0,並且以下所有值也將爲0。循環開始前

a[0] = 1,你會得到的兩個大國,因爲這樣會有:

a[0] = 1 = 1 
a[1] = 1*2 = 2 
a[2] = 2*2 = 4 
... 
+3

它可能等於'0'。它沒有定義,但是OP恰好是'0'。 – Paulpro

+0

將「將會」更改爲「可能是」。 –