关于C语言中的sqrt函数

我需要在程序中进行平方根的运算。使用非常简单的sqrt函数。具体代码如下:#include<stdio.h>#include<math.h>intmain(){doubl... 我需要在程序中进行平方根的运算。
使用非常简单的sqrt函数。
具体代码如下:

#include<stdio.h>
#include <math.h>

int main ()
{
double param, result;
param = 1024.0;
result = sqrt (param);
printf ("sqrt(%f) = %f\n", param, result );
return 0;
}

编译时出现问题,提示为:
/tmp/cccpY4tT.o: In function `main':
testsqrt.c:(.text+0x35): undefined reference to `sqrt'
collect2: ld returned 1 exit status

但是如果直接计算sqrt(1024.0)或者sqrt(2)的话就没有问题,也就是说计算带入的变量就会出现错误,但是直接输入数字就不会有问题。

请问这是为什么?
感谢解答。但请问如何加入-lm选项?
展开
 我来答
liuxuqifei
推荐于2017-10-01 · TA获得超过7719个赞
知道小有建树答主
回答量:739
采纳率:87%
帮助的人:279万
展开全部

  C语言中sqrt函数是指的开方运算函数,得到的结果是函数变量(可以是数值,也可以是变量名)的算术平方根。如输入m=sqrt(4);,则输出结果为2。或者对于变量a有赋值9,,则输入m=sqrt(9),输出结果为3.

  需要注意的是以下三点:

  1. sqrt函数运行的是结果是算术平方根,即不能运算处负数值,也不能输出虚数结果。如需要得到算术平方根中的负数值,则应该在sqrt函数前添加负号。

  2. sqrt函数的参数必须是非负数值,如果是负数值,则输出会报错,即数值无效;如果参数是未定义的非数字变量,则按回车后也会报错,即变量名有误。

  3. sqrt函数的计算精度与C语言设置的精度有关,可以通过设置更改精度。

匿名用户
推荐于2017-09-17
展开全部
在用GCC编译时,要加上 -lm选项以便连接数学库

... ...

假设程序文件为cccpY4tT.c,则用以下命令行编译这个程序:

gcc cccpY4tT.c -lm

参考资料: SK

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
訾可欣迮词
2020-04-24 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:31%
帮助的人:1123万
展开全部
帮你改好了!自己看下就懂了!
#include

#include

void
main()
{
double
a;
double
t,s;
scanf("%lf",&a);
t=sqrt(a);
s=pow(a,2);
printf("%lf
%lf",t,s);
}
你要%d的话就要全部使用int型的!
要double的话就要%lf
如果用float型的就用%f
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c438d1ee3
2010-05-14 · TA获得超过930个赞
知道小有建树答主
回答量:294
采纳率:0%
帮助的人:203万
展开全部
没错啊 ,我在编译器里可以通过并运行 V6.0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式