在 1 个 C 中集成 2 个数学方程
Integrating 2 Mathematical Equations in 1 C
我编写了一个程序来根据函数 y = (sqrt(3+x^2))/(20x^2+sqrt( X))。使用两个计数器,一个用于 x 值 [i],一个用于 y 值 [n]。我的 x 值显示正常,但是,y 值 return 为零。这里会出现什么错误?非常感谢。
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;
}
您将继续使用 i
,但在第一个 for
循环后没有 re-initializing 到 0
。因为 i
的值保持在 times
的值,所以第二个 for
循环 never 到达 运行。但是您在最终循环中打印 x
、y
的值时正确地初始化了它。
将第二个 for
循环更改为
for (i =0, n = 0; i < times && n < Ymax; i++, n++)
// ^^^^^
{
y[n] = 1 - (1 - (sqrt(4 - (pow(x[i], 2))))) / (40 * pow(x[i], 2) + sqrt(x[i]));
}
在第二个 for 循环的初始化部分添加一行“i=0”。
您应该像这样使用 C99 样式的循环:
for (int i = 0; ...)
避免此类错误。
我编写了一个程序来根据函数 y = (sqrt(3+x^2))/(20x^2+sqrt( X))。使用两个计数器,一个用于 x 值 [i],一个用于 y 值 [n]。我的 x 值显示正常,但是,y 值 return 为零。这里会出现什么错误?非常感谢。
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;
}
您将继续使用 i
,但在第一个 for
循环后没有 re-initializing 到 0
。因为 i
的值保持在 times
的值,所以第二个 for
循环 never 到达 运行。但是您在最终循环中打印 x
、y
的值时正确地初始化了它。
将第二个 for
循环更改为
for (i =0, n = 0; i < times && n < Ymax; i++, n++)
// ^^^^^
{
y[n] = 1 - (1 - (sqrt(4 - (pow(x[i], 2))))) / (40 * pow(x[i], 2) + sqrt(x[i]));
}
在第二个 for 循环的初始化部分添加一行“i=0”。
您应该像这样使用 C99 样式的循环:
for (int i = 0; ...)
避免此类错误。