C ++错误错误:无效类型' double [10] [10] [double]'对于数组下标

时间:2016-11-24 02:06:24

标签: c++ for-loop

我试图通过以0.1为增量从0循环到1来生成网格。当我用一个整数递增时代码运行正常,例如从0增加到10,增量为1,但我无法理解这是错误的。

#include <iostream>
using namespace std;

int main()
{

double u[10][10];
double dx=0.1, i, j;

for(i=0;i<=1;i+=dx)
for(j=0;j<=1;j+=dx)
{
    u[i][j]=i; // this line gives an error
}
}

1 个答案:

答案 0 :(得分:0)

您遇到的问题是您尝试使用double(例如0.3)访问数组的索引。由于数组索引是整数,因此尝试访问双索引将导致错误。

我认为这是你想要做的,所以试试这个:

#include <iostream>
using namespace std;

int main()
{
    double u[11][11];

    for (int i = 0; i <= 10; i++)
        for (int j = 0; j <= 10; j++)
            u[i][j] = (double)(i / 10.0);

}

因此,我们不是试图在[0.3] [0.3]处访问你,而是在[3] [3]处访问你,只是在将i输入数组时将i改为double。