关于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选项? 展开
使用非常简单的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选项? 展开
4个回答
展开全部
C语言中sqrt函数是指的开方运算函数,得到的结果是函数变量(可以是数值,也可以是变量名)的算术平方根。如输入m=sqrt(4);,则输出结果为2。或者对于变量a有赋值9,,则输入m=sqrt(9),输出结果为3.
需要注意的是以下三点:
sqrt函数运行的是结果是算术平方根,即不能运算处负数值,也不能输出虚数结果。如需要得到算术平方根中的负数值,则应该在sqrt函数前添加负号。
sqrt函数的参数必须是非负数值,如果是负数值,则输出会报错,即数值无效;如果参数是未定义的非数字变量,则按回车后也会报错,即变量名有误。
sqrt函数的计算精度与C语言设置的精度有关,可以通过设置更改精度。
推荐于2017-09-17
展开全部
在用GCC编译时,要加上 -lm选项以便连接数学库
... ...
假设程序文件为cccpY4tT.c,则用以下命令行编译这个程序:
gcc cccpY4tT.c -lm
... ...
假设程序文件为cccpY4tT.c,则用以下命令行编译这个程序:
gcc cccpY4tT.c -lm
参考资料: SK
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
帮你改好了!自己看下就懂了!
#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
#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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没错啊 ,我在编译器里可以通过并运行 V6.0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询