【发布时间】:2016-11-24 02:06:23
【问题描述】:
我试图通过以 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
}
}
【问题讨论】:
-
你的问题是,究竟是什么?
i和j是双打。您不能使用双精度数索引数组。下一个问题,请...显示的代码也有另一个错误。两个循环都使用i。 -
数组索引是整数。您不能使用双精度数代替整数来索引数组。显然,您不能声明
double dx=0.1, i, j;。您在标题中包含的错误消息以简单的语言告诉您。学习阅读信息中的词语——它们是有意义的。它们不只是为了占用屏幕上的空间。 -
修复了,第二个循环是 j。如果我使用整数递增,循环将永远运行。 i+dx=i 表示整数。
-
@Nick 您可以从 0 到 10 乘 1 循环而不是从 0 到 1 乘 0.1 循环