C语言的那些事——sqrt()函数 和 double型数据的“%lf”
2013-11-01 20:26
393 查看
计算函数y=2*x^2中的x的值。计算x的值.
原本这是一道很简单的编程题目,但是对sqrt()函数以及double型数的输入与输出必须进行强调。
函数名:sqrt()
函数声明:double sqrt( double x);
第一:该函数的输入参数必须以double类型输入,函数返回类型为double型,因此必须使用double型的变量来进行接收返回的数值。当输入数据不是double型时,应使用强制类型转换,将其转换为double类型。另外,sqrt()函数的输入参数不允许为负数,若输入赋值作为函数入参,将得不到正确的结果。因此在调用函数之前,应检查函数输入参数。
第二:在函数接收引用的数值时,应该用 %lf 来表示,否则,将会在输入或输出时出现数据错误,尤其是在数据输入的时候,会直接导致数据出错。这也都主要是由于不同类型的数据存储和读取的方式不同导致的。
下面用一个简单的程序作为例子进行说明:
输出结果为:
当scanf(“%f”,&y)时,则会出现
所以在编写程序时一定要多加注意,数据的类型。
原本这是一道很简单的编程题目,但是对sqrt()函数以及double型数的输入与输出必须进行强调。
函数名:sqrt()
函数声明:double sqrt( double x);
第一:该函数的输入参数必须以double类型输入,函数返回类型为double型,因此必须使用double型的变量来进行接收返回的数值。当输入数据不是double型时,应使用强制类型转换,将其转换为double类型。另外,sqrt()函数的输入参数不允许为负数,若输入赋值作为函数入参,将得不到正确的结果。因此在调用函数之前,应检查函数输入参数。
第二:在函数接收引用的数值时,应该用 %lf 来表示,否则,将会在输入或输出时出现数据错误,尤其是在数据输入的时候,会直接导致数据出错。这也都主要是由于不同类型的数据存储和读取的方式不同导致的。
下面用一个简单的程序作为例子进行说明:
#include<stdio.h> #include<math.h> void main() { double y=0.0,x=0.0; back: printf("请输入函数y的值:"); scanf("%lf",&y); if(y<0) { printf("参数输入错误:函数值应该大于等于0\n"); goto back; } x=sqrt(y/2.0); printf("函数值为 %lf 时,自变量可以是 %lf 和 %lf\n",y,x,-x); }
输出结果为:
当scanf(“%f”,&y)时,则会出现
所以在编写程序时一定要多加注意,数据的类型。