2011-06-03 28 views
0

我正在嘗試一些C++,但我對這個太陌生了,你可以說這是我在C++的第一天。所以我試圖創建一個函數,但我堅持使用數組!當我創建人物的基於陣列像這樣:如何在Turbo C++中創建基於字符的數組?

char x[7][7] = {"sec","min","hr","day","week","month","year"}; 

,當我嘗試從中獲取數據是這樣的:

for (i=0;i<=7;i++){ 
    cout << x[i] << "\n";  
} 

我得到一些奇怪的結果!像這樣:
enter image description here

有誰能告訴我我要去哪裏完全錯了!而且我也是新來的C++,所以你能否給我一個很好的解釋。

+6

請勿使用Turbo C++。使用像Code :: Blocks或VC++ Express這樣的現代IDE。 – 2011-06-03 16:51:00

回答

6

由於您有7個值,並且數組從0開始索引,所以您只需要計數到6,而不是7.將for循環修改爲for (i=0;i < 7;i++)。 (<而不是<=。)

您將在數組的末尾,這可能會給你垃圾數據或可能只是你的程序崩潰。

+0

感謝哥們我只是在某處忽略了一下,並試過你的'我<7 &&我的其他聲明「,它的工作方式和我想象的一樣! – 2011-06-03 17:07:22

1
for (i=0;i<=7;i++){ 
    cout << x[i] << "\n";  
} 

陣列索引只會範圍從06,你檢查i<=7。將其更改爲i < 7

+0

但我的代碼需要'> ='運算符才能工作。請幫忙。 – 2011-06-03 16:52:52

+0

@Jack:如果您需要使用它,請與'i <= 6'比較。 – Xeo 2011-06-03 16:53:43

+0

好,就像你說的那樣。但這不是我的代碼工作所必需的。我想我必須放棄。 – 2011-06-03 16:57:04

0

問題不在於創建數組,而是在打印結果。 C,C++,Java,C#中的數組...以及許多其他語言都是基於0的。當聲明7個元件的陣列從0到6迭代:

for (int i = 0; i < 7; ++i) { 
    std::cout << x[i] << std::endl; 
} 

注:<,而不是一個<=

相關問題