C语言数学函数sqrt()输出问题

作者&投稿:蓝喻 (若有异议请与网页底部的电邮联系)
c语言中sqrt()函数的输出问题,两种输出为什么是3,0,怎么会不一样~

sqrt的返回值类型是double型,你输出的时候用%d当然结果是错的了,可以试试类型转换,把最后一个printf语句改成如下:

printf("%d
",(int)sqrt(n));

鼠标点sqrt后按F1,系统会有出现用法和例子,我简单举个例吧:
printf("%lf", sqrt(123));

因为sqrt(9)是double型数据,用%d输出的时候,输出的都是0,应该用 %lf 输出。

#include <stdio.h>
#include <math.h>
int main()
{
double n;
n=sqrt((double)9);
printf("%f
",sqrt((double)9));  //为什么这一行输出的是0,而不是3 ?
printf("%d
",n);
return 0;
}

因为sqrt的原形是double sqrt(double)

double和int在内存的布局造成的结果差别很大



printf("%d\n",sqrt(9)); //为什么这一行输出的是0,而不是3 ?
sqrt(9) 函数返回类型为 double,printf 函数是一个很呆板的函数,%d 如果接收 double 类型的数据,就只显示 0;两种方法更改:%d 改成 %ld ; sqrt(9) 改成 (int)sqrt(9)。

printf("%d\n",(int)sqrt(9));


c++中可以直接使用对数函数吗?
c++中不可以直接使用对数函数,需要引入头文件:math.h,使用C\/C++语言中的数学函数log()函数来表示。自然对数以常数e为底数的对数。记作lnN(N>0)。在物理学,生物学等自然科学中有重要的意义。一般表示方法为lnx。数学中也常见以logx表示自然对数。log是C语言中的数学函数,发明者是苏格兰的纳皮尔,...

pascal函数标准函数
这些函数的标识符便于在程序中直接调用,为编程提供了便利。整型标准函数包括一系列操作,如前趋函数Pred(x)减1,后继函数Succ(x)加1,以及绝对值、平方和奇偶性检测等。例如,Pred(6)等于5,Abs(-119)等于119。实数类型函数涵盖了数学运算,如Abs(x)的绝对值,Sqr(x)的平方,以及更复杂的数学函数...

在vb中像sqr()这样的还有什么,明天会考,高中
? 数学函数 1、 Sin(x):返回自变量x的正弦值 2、 Cos(x): 返回自变量x的余弦值 3、 Tan(x): 返回自变量x的正切值 4、 Atn(x): 返回自变量x的反正切值 5、 Abs(x): 返回自变量x的绝对值 6、 Sgn(x): 返回自变量x的符号,即当x为负数时,返回-1;当x为0时,返回 0;当x为正数时...

一个C语言程序不知道哪错了求解
include<stdio.h>#include<math.h>int main()\/\/{ float a,b,c; printf("Input a="); scanf("%f",&a); printf("Input b=");\/\/ scanf("%f",&b); c=sqrt(a*a+b*b);\/\/ printf("c=%.2f\\n",c); return 0;\/\/}

Excel VBA内置函数功能解释(初识VBA)
IsArray(x):检测变量x是否为数组。 IsError, IsNull, IsObject:分别检查表达式是否为错误值、是否为null或是否为对象。数学函数 三角函数如Sin, Cos, Tan, Atan,适用于弧度单位。 Log, Exp分别计算自然对数和e的指数。 Abs, Int, Fix, Sgn, Sqr涉及绝对值、整数部分、四舍五入、符号和...

free pascal 中有哪些函数
sqr 整型、实型 平方 同自变量 sqrt 整型、实型 平方根 实型 例:abs(-4)=4 abs(-7.49)=7.49 arctan(0)=0.0 sin(pi)=0.0 cos(pi)=-1.0 frac(-3.71)=-0.71 int(-3.71)=-3.0 sqr(4)=16 sqrt(4)=2 2.标准函数 函数标识符 自变量类型 意义 结果类型 odd 整型 判断...

高中数学算法初步的编写程序中有哪些专用符号,都是什么意思
例如 MOD(3, 2) 等于 1MOD(-3, 2) 等于-1MOD(3, -2) 等于1 MOD(-3, -2) 等于-1MOD(-3, 0) 等于-3MOD(3, 0) 等于3MOD(2,0) 等于2 sqr(x)代表求非负数x的算术平方根 例: sqr(4) = 2 其他的我也不记得了 如果你想问那个符号可以追问,我会的话就告诉你,让我想我是...

free pascal 中的各种函数及其意义
(J)圆周率函数PI=3.1415926536 (3)自变量为整型(或实型),但函数值类型与x一致的标准函数 (A)Abs(x):绝对值函数,如:Abs(-2)=2 Abs(-2.0)=2.0000000000E+00 (B)Sqr(x):平方函数如,如:Sqr(4)=16 Sqr(4.0)= 1.6000000000E+01 (4)自变量为整型(或实型),但函数值...

高中数学数学中的int是什么意思?
在VB中提供了许多与数学中函数类似的标准函数,可供用户直接使用。例如:1.平方根函数Sqr(x)功能:返回x的平方根,x≥0,如 的表达式为Sqr(5)。2.绝对值函数 Abs(x)功能:返回x的绝对值,如∣a∣的表达式为Abs(a),如|-5|的表达式为Sqr(-5)。3.取整函数Int(x)功能:返回不...

我有个PASCAL语言编程问题!!急
PASCAL提供了丰富的预定义标准函数,通过标准函数我们可以把一些复杂的数学问题简化。下面让我们来看看这些函数的功能。 1 绝对值函数 ABS() 例:ABS(-3.14)=3.14 ABS(6)=6 2 平方函数 SQR() 例:SQR(4)=16 SQR(-3)=9 3 开方函数 SQRT() 例:SQRT(9)=3 AQRT(2)=1.414 4 正弦函 SIN() 例:SIN(...

怀安县14722809168: C语言数学函数sqrt()输出问题 -
司马世盐酸: printf("%d\n",sqrt(9)); //为什么这一行输出的是0,而不是3 ?sqrt(9) 函数返回类型为 double,printf 函数是一个很呆板的函数,%d 如果接收 double 类型的数据,就只显示 0;两种方法更改:%d 改成 %ld ; sqrt(9) 改成 (int)sqrt(9).

怀安县14722809168: C语言 sqrt函数的一个疑问 -
司马世盐酸: long为32位整型数2^32 > (53258-4098)*(53258-4098) > 2^31 所以(53258-4098)*(53258-4098)的结果相当于一个负数 对一个负数开平方自然会DOMAIN error 改成long double就可以了

怀安县14722809168: 请问 c语言 sqrt()函数运行时出现 do main error 是什么原因? -
司马世盐酸: 函数名: sqrt 功 能: 计算平方根 用 法: double sqrt(double x); 程序例:#include <math.h>#include <stdio.h> int main(void){double x = 4.0, result; result = sqrt(x);printf("The square root of %lf is %lf\n", x, result);return 0; }

怀安县14722809168: 一道关于c语言中sqrt函数的问题...急! -
司马世盐酸: 应该写成 d=sqrt(double (x+2*y)); 这个sqrt函数本身返回就是 double 型的,前面不用再写了

怀安县14722809168: 求解大学c语言菜鸟级别的一个小问题.谢谢大神.sqrt函数输出正还是负..谢谢 -
司马世盐酸: 当然是正,求得的都是正平方根,没有负的.

怀安县14722809168: C语言编程中sqrt出现异常 -
司马世盐酸: 需要在头文件中加入#include

怀安县14722809168: c语言使用sqrt函数得到的数据的类型? -
司马世盐酸: 要想弄清这个问题,首先要看看这个函数的原型: 打开头文件:math.h 看到: double _Cdecl _FARFUNC sqrt (double __x); 可见输入的自变量的类型是双精度型,输出结果也是双精度型. 因此,c语言使用sqrt函数得到的数据的类型是双精度型(double).

怀安县14722809168: 为什么sqrt报错?(C语言编程新手菜鸟求求指点...) -
司马世盐酸: 需要包含包含各种数学函数的头文件 : #include<math.h> 望采纳

怀安县14722809168: C语言为什么加上了头文件sqrt还是显示出错 -
司马世盐酸: int m =sqrt((double)i);C语言是没有重载的,C++才有,你应该是用C++的编译器来写C语言吧在C++中sqrt有两个重载函数,一个参数是double,另一个是float由于你传的参数是int在默认的隐式类型转换中int可以转换成float也可以转换为double,编译器就不知道你想调用哪一个.

怀安县14722809168: c语言里面t定义的时候是int而且是一个平方数,(int)sqrt(t)和sqrt(t)结果为什么有区别啊? -
司马世盐酸: sqrt函数返回的是一个浮点数 如果你输出的时候是以%d输出,肯定是有问题的.(int)sqrt(t)的前面那个int是对返回值进行强制转换,转换为int型

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网