所以我想在-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分。我只是不明白 - .-
答案 0 :(得分:2)
因为我是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);
}
答案 1 :(得分:1)
i/100
执行整数除法(因此50/100
导致0
),使用浮点数:i / 100.
(注意.
之后100
}})。