所以我想在-3到3的区间内做一些数字,以便在下面绘制这些函数,所以我想要尽可能多的数字。
我在做这个:
double k[601];
double y[601];
for (int i = 0; i <= 600; ++i)
{
k[i]=cosh(i/100-3);
y[i]=sinh(i/100-3);
}
当我画出这些点的时候,问题就出现了。我总是得到同样的7分。我预计会是601,所以我的图表会更满。
例如:
double k[11];
double y[11];
for (int i = 0; i <= 10; ++i)
{
k[i]=cosh(i-5);
y[i]=sinh(i-5);
}
会给我画出11分。我就是不明白
因为i是int,所以i/100也是int。然后,从i=0到99,你将得到相同的i/100值。
强制i从int到double将完成
double k[601];
double y[601];
for (int i = 0; i <= 600; ++i)
{
k[i]=cosh((double)i/100-3);
y[i]=sinh((double)i/100-3);
}
i/100
进行整数除法(因此50/100
产生0
),使用浮点:i / 100.
(注意100
之后的.
)。