我正在编写这个程序来查找数字的平方根 . 在定义函数mysqrt()时 . 我正在使用Newton-Raphson方法 . 在if()中我使用fabs(blah data blah)<0.001表示相对错误EX . 如果误差小于.1%,答案是正确的 . 当我编译下面的代码时
我得到错误第27行:调用对象'5.0e-1'不是函数 .
我完全不知道它是指什么 . 请帮忙谢谢 .
我知道有一个sqrt()函数,但这是一个额外的信用分配我已经写了大部分,但无法纠正这个错误 .
#include <stdio.h>
#include <math.h>
double mysqrt(double a);
int main()
{
double a, result;
printf("Enter a number to find the square root of: ");
scanf("%d", &a);
result = mysqrt(a);
printf("The square root of %d is %d \n", a, result);
}
double mysqrt(double num)
{
double x, new_x;
if((fabs(((x+1) - x)/(x+1)))<0.001)
{
for(x=2; x != num;)
{
new_x=(x+1);
new_x=(0.5(x+(num/x)));
x=new_x;
}
}
else
{
return new_x;
}
}
1 回答
你在这里忘了乘法符号:
这是一个非常常见的错误,当你看到“......不是一个函数”时,它意味着你所拥有的某个地方......()通常是一个被遗忘的乘法 .
你的程序很难读,因为有很多括号,为什么不写:
另外,这个:
相当于:
在纸上进行简化,它将使您的程序更易读,更容易发现错误 .