我试图以0.1的增量从0到1来生成网格。当我使用整数以1增量为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
}
}
您遇到的问题是,您正在尝试使用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]中尝试访问u,而是在[3] [3]中访问u,而只是将i更改为双重输入i。