69,382
社区成员
发帖
与我相关
我的任务
分享
// test.c
#include<stdio.h>
#include<math.h>
double fabs(double x) //绝对值函数,这个函数与math.h中的fabs函数同名
{
if(x >= 0.0)
return x;
else
return -x;
}
double sqrt(double a) //开平方函数,这个函数与math.h中的sqrt函数同名
{
double x1, x2;
x1 = a/2.0;
x2 = (x1 + a/x1)/2.0;
while(fabs(x2-x1)>1e-6)
{
x1 = x2;
x2 = (x1 + a/x1)/2.0;
}
return x1;
}
int main()
{
double x = 3.0;
printf("%.6lf\n", sqrt(x));
return 0;
}
// test.c
#include<stdio.h>
#include<math.h>
/*
double fabs(double x) //绝对值函数,这个函数与math.h中的fabs函数同名
{
if(x >= 0.0)
return x;
else
return -x;
}
*/
double sqrt(double x) //开平方函数,这个函数与math.h中的sqrt函数同名
{
double x1, x2;
x1 = x/2.0;
x2 = (x1 + x/x1)/2.0;
while(fabs(x2-x1)>1e-6)
{
x1 = x2;
x2 = (x1 + x/x1)/2.0;
}
return x1;
}
int main()
{
double x = 3.0;
printf("%.6lf\n", sqrt(x));
return 0;
}
仍然能成功运行。也就是fabs函数来自math库,sqrt来自自定义函数,怎么就不冲突呢?
to mymtom:
有点感觉,但不太理解。
to focuslight:
函数原型是相同的,这一次的程序也修改了参数。
C语言有名字空间吗?