2017-07-18 89 views
-2

這個還是新的。這段代碼有什麼問題?我試圖製作和使用2維數組。我的總體想法是否正確?用嵌套for循環來遍歷它?我的代碼究竟有什麼問題?它不會編譯。二維陣列問題

#include <iostream> 
#include <iomanip> 

using namespace std; 

int main() 
{ 
const double NUM_MONKEYS = 3; 
const double NUM_DAYS = 5; 
double monkeys[NUM_MONKEYS][NUM_DAYS]; 
int row, column; 

for (row = 0, row < NUM_MONKEYS, row++) 
{ 
    for (column = 0, column < NUM_DAYS, column++) 
    { 

    cout << "Input amount of food eaten by monkey: " << row + 1; 
    cout << " and day: " << column + 1 << endl; 
    cin >> monkeys[row][column]; 
    } 

} 
return 0; 

} 

有什麼我沒有得到,謝謝!

+1

你應該用C++ –

+0

'用namespace std;'標記這個也是不好的做法 - 谷歌它 –

+0

你應該發佈錯誤信息。但問題在於使用,而不是;在你的陳述。 –

回答

1

首先 - 數組的大小應該是整數類型,並且您已將其定義爲double。 第二--for循環的語法不正確,應該有';'而不是','在你的for循環中。

#include <iostream> 
#include <iomanip> 



int main() 
{ 
    const int NUM_MONKEYS = 3; 
    const int NUM_DAYS = 5; 
    double monkeys[NUM_MONKEYS][NUM_DAYS]; 
    int row, column; 

    for (row = 0; row < NUM_MONKEYS; row++) 
    { 
     for (column = 0; column < NUM_DAYS; column++) 
     { 

      std::cout << "Input amount of food eaten by monkey: " << row + 1; 
      std::cout << " and day: " << column + 1 << endl; 
      std::cin >> monkeys[row][column]; 
     } 

    } 
    return 0; 

} 

儘管您可以在數組中存儲雙精度型值。 也作爲說,儘量避免'使用名稱空間標準;' see here

+0

1.擺脫'使用命名空間標準;' - 谷歌爲什麼這是墊練習。根據上面的註釋使用'std :: size_t'。 –

+0

對於命名空間是真實的,但請閱讀最後一行,我指出該數組可以用來存儲double值,但大小應該是整數 –

+0

'const int NUM_MONKEYS = 3;' - 最好不要使用'std :: size_t' INT。另外如果你知道寫'使用命名空間std'是壞的,那麼不要寫它。壞習慣很難擺脫 –