硬编码2D数组值

时间:2015-11-17 12:48:13

标签: c++ arrays

尝试将值插入到2D数组中,但输出不是给出我的值,而是随机字母

int myArr[8][2] = {700,730,760,790,810,840,910,1000}{0.011,0.035,0.105,0.343,0.789,2.17,20,145};
cout  << myArr << endl;
system("Pause");

我应该如何调整代码,还是更容易使用文本文件并插入?

3 个答案:

答案 0 :(得分:6)

无数问题:

  • 数组尺寸错误
  • 您没有外部大括号或嵌套数组的逗号
  • 您尝试在int数组
  • 中存储双精度浮点值
  • 您不能将cout与整个数组一起使用。

数组声明应该是这样的:

double myArr[2][8] = { {700,730,760,790,810,840,910,1000},
                       {0.011,0.035,0.105,0.343,0.789,2.17,20,145} };

并输出您可以执行以下操作的内容:

for (int i = 0; i < 2; ++i)
{
    for (int j = 0; j < 8; ++j)
    {
        cout << " " << myArr[i][j];
    }
    cout << endl;
}

Live Demo

答案 1 :(得分:2)

首先 - 你不能只使用cout << myArr打印整个数组,你需要使用for循环迭代数组的元素。

第二 - 你试图将十进制值放入一个整数数组中,这将截断所有的小数。

第三 - 您的数组的大小应为myArr[8][2]而不是myArr[2][8]。我很惊讶你的编译器可以让你逃避这一点。您应该考虑使用不同的编译器。

答案 2 :(得分:0)

您需要遍历每一行和每列,否则您只是打印出数组句柄的指针值。

for (int i=0;i<8;i++){
  for (int j=0;j<2;j++){
    cout << myArr[i][j] << " ";
  }
  cout << endl;
}
system("Pause");