【发布时间】:2021-01-13 08:06:33
【问题描述】:
我编写了一个程序来根据函数 y = (sqrt(3+x^2))/(20x^2+sqrt(x)) 的给定 x 值计算 y 值。使用两个计数器,一个用于 x 值 [i],一个用于 y 值 [n]。我的 x 值显示得很好,但是,y 值返回零。这里会有什么错误?非常感谢。
for (i = 0; i < 30; i++)
{
x[i] = 20 i * 2 + 3;
}
for (n = 0; i < 30 && n < 50; i++, n++)
{
y[n] = (sqrt(3 + (pow(x[i], 2))))) / (20 * pow(x[i], 2) + sqrt(x[i]));
}
for (i = 0, n = 0; i < 30 && n < 50; i++, n++)
printf("x %lf, y %lf", x[i], y[n]);
return 0;
}
【问题讨论】:
-
您应该使用像 2.0 vs 2 这样的浮点常量来排除表达式中的整数运算。在最后一个循环中你不需要 i 和 n。
标签: c arithmetic-expressions math-functions