C++ 日志(x)域错误C++;建设者
我必须用log(x)函数构建图形,但生成器显示错误“DOMAIN error”。 我认为这是因为日志不能包含x,但我不知道如何修复它C++ 日志(x)域错误C++;建设者,c++,math,graph,c++builder,logarithm,C++,Math,Graph,C++builder,Logarithm,我必须用log(x)函数构建图形,但生成器显示错误“DOMAIN error”。 我认为这是因为日志不能包含x,但我不知道如何修复它 ...... int x0, y0 ,mash_x, mash_y; float f(float x); float f(float x) { return log10(x) + 3; } //----------------------------------------------------------------------------
......
int x0, y0 ,mash_x, mash_y;
float f(float x);
float f(float x)
{
return log10(x) + 3;
}
//----------------------------------------------------------------------------
int xk(float mx)//komp
{
return floor(x0+mx*mash_x);
}
//----------------------------------------------------------------------------
int yk(float my)//komp
{
return floor(y0-my*mash_y);
}
//----------------------------------------------------------------------------
void drawgraf(float xmin,float xmax)
{
float x, y;
int XK, YK;
x = xmin;
y = f(x);
XK = xk(x);
YK = yk(y);
Form1->Image1->Canvas->Pen->Color = clRed ;
Form1->Image1->Canvas->MoveTo(XK,YK);
while(x<=xmax)
{
x = x+0.01;
y = f(x);
XK = xk(x);
YK = yk(y);
Form1->Image1->Canvas->LineTo(XK,YK);
}
如何创建log10(x)+3而不出现“域错误”;
谢天谢地 使用
log10f()
,而不是log10()
。并确保x是正数,例如,if(x>0.0)返回log10f(x)+3.0;else/*错误处理*/代码>。此外,有意义的函数和变量名将提高代码的可读性。谢谢@squemishossifrage
float f(float x)
{
return log10(x) + 3;
}