2017-07-18 161 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'是坏的,那么不要写它。坏习惯很难摆脱 –