C语言入门(6)——C语言常用数学函数
在编码过程中会经遇到数学运算,幸运的是C语言提供了非常丰富的数学函数库。
在数学中使用函数有时候书写可以省略括号,而C语言要求一定要加上括号,例如sin(pi/2)这种形式。在C语言的术语中,pi/2是参数,sin是函数,sin(pi/2)是函数调用。
函数调用也是一种表达式。这个表达式由函数调用运算符(也就是括号)和两个操作数组成,操作数sin称为Function Designator,是函数类型的,操作数pi/2是double型的。这个表达式的值就是sin(pi/2)的计算结果,在C语言的术语中称为函数的返回值。
下面演示一些常用的函数用法。在使用数学函数需要时要引入头文件math.h。
1、函数名:abs
功能:返回整型数的绝对值.
用法:Abs(number)
number 参数可以是任意有效的数值表达式。如果 number 包含 Null,则返回 Null;如果是未初始化变量,则返回 0.
代码举例:
#include <stdio.h>
#include <math.h>
int main()
{
intnumber = -1234;
printf("数字: %d 的绝对值是: %d \n", number, abs(number));
system("pause");
return0;
}
运行结果:
2、函数名:fabs
功能:求浮点数x的绝对值.
用法:fabs(double x);
代码举例:
#include <stdio.h>
#include <math.h>
int main()
{
floatnumber = -1234.0;
printf("数字: %f 的绝对值是: %f \n", number, fabs(number));
system("pause");
return0;
}
运行结果:
3、函数名:sqrt
功能:返回指定数字的平方根.
用法:sqrt (double x);
说明:sqrt即平方根计算(Square Root Calculations),通过这种运算可以考验CPU的浮点能力。
代码举例:
#include <math.h>
#include <stdio.h>
int main(void)
{
doublex = 4.0, result;
result =sqrt(x);
printf("%f 的平方根是 %f\n", x, result);
system("pause");
return0;
}
运行结果:
4、函数名:pow
功能:返回指定数字的指定次幂.
用法:pow (double x, double y);(将返回x的y次幂)
返回值:x不能为负数且y为小数,或者x为0且y小于等于0,返回幂指数的结果。
返回类型:double型,int,float会给与警告!
代码举例:
#include<math.h>
#include<stdio.h> int main(void)
{
doublex = 2.0, y = 3.0;
printf("%lf 的 %lf 次方是 %lf\n", x, y, pow(x, y));
system("pause");
return0;
}
运行结果:
5、函数名: frexp
功 能:把一个双精度数分解为尾数的指数
用 法:double frexp(doublevalue, int *eptr);
参数:
x : 要分解的浮点数据
expptr : 存储指数的指针
返回值:返回尾数
说 明:其中 x = 尾数 * 2^指数
代码举例:
#include <math.h>
#include <stdio.h>
int main(void)
{
doublemantissa, number;
intexponent;
number =8.0;
mantissa =frexp(number, &exponent);
printf("数字 %lf 是 %lf 乘以2的 %d 次方\n", number, mantissa, exponent);
system("pause");
return0;
}
运行结果:
验证:8 = 0.5* 2^4 = 0.5 * 16
6、函数名:ceil / floor
功能: 向上舍入/向下舍入
用法:double ceil(doublex);
double floor(double x);
代码举例:
#include<math.h>
#include<stdio.h>
int main(void)
{
doublenumber = 123.54;
doubledown, up;
down =floor(number);
up =ceil(number);
printf("数字:%5.2lf\n", number);
printf("向下舍入的结果:%5.2lf\n", down);
printf("向上舍入的结果:%5.2lf\n", up); system("pause");
return0;
}
运行结果:
7、函数名: atof (const char *s);
功 能: 把字符串转换成浮点数
用 法: double atof(constchar *nptr);
代码举例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
float arg, *point = &arg;
float f;
char *str = "12345.67";
f = atof(str);
printf("string = %s float = %f\n", str, f); system("pause");
return 0;
}
运行结果:
C语言关于数学运算的函数还有很多,例如三角函数、对数函数等,用法比较简单,就不一一举例了。
C语言入门(6)——C语言常用数学函数的更多相关文章
- VB.Net常用数学函数整理
System.Math 类中定义了用于数学计算的函数.Math 类包括三角函数.对数函数和其他常用数学函数.下列函数是在 System 名称空间的 Math 类中定义的函数. 注意:要使用这些函数 ...
- php常用数学函数
php常用数学函数1. bcadd 任意精度数的相加2. bcsub 任意精度数的减法3. bcmul 乘法, bcdiv除法 4. bcmod 取余数. (比%功能更强大)5. bcpow 幂函数运 ...
- R语言常用数学函数
语言的数学运算和一些简单的函数整理如下: 向量可以进行那些常规的算术运算,不同长度的向量可以相加,这种情况下最短的向量将被循环使用. > x <- 1:4 > a <- 1 ...
- c语言入门教程 / c语言入门经典书籍
用C语言开始编写代码初级:C语言入门必备(以下两本书任选一本即可) C语言是作为从事实际编程工作的程序员的一种工具而出现的,本阶段的学习最主要的目的就是尽快掌握如何用c语言编写程序的技能.对c语言的数 ...
- 【转】c语言入门教程 / c语言入门经典书籍
用C语言开始编写代码 初级:C语言入门必备 (以下两本书任选一本即可) C语言是作为从事实际编程工作的程序员的一种工具而出现的,本阶段的学习最主要的目的就是尽快掌握如何用c语言编写程序的技能.对c语言 ...
- TCL语言笔记:TCL中的数学函数
一.TCL数学函数列表 函数名 说明 举例 abs(arg) 取绝对值 set a –10 ; #a=-10 set a [expr abs($a)]; # a=10 acos(arg) 反余弦 s ...
- Go语言入门系列(六)之再探函数
Go语言入门系列前面的文章: Go语言入门系列(三)之数组和切片 Go语言入门系列(四)之map的使用 Go语言入门系列(五)之指针和结构体的使用 在Go语言入门系列(二)之基础语法总结这篇文章中已经 ...
- 【R语言入门】R语言中的变量与基本数据类型
说明 在前一篇中,我们介绍了 R 语言和 R Studio 的安装,并简单的介绍了一个示例,接下来让我们由浅入深的学习 R 语言的相关知识. 本篇将主要介绍 R 语言的基本操作.变量和几种基本数据类型 ...
- 入门大数据---SparkSQL常用聚合函数
一.简单聚合 1.1 数据准备 // 需要导入 spark sql 内置的函数包 import org.apache.spark.sql.functions._ val spark = SparkSe ...
随机推荐
- 在github搭建你的个人主页
一. 有没有遇到过在简历上要求写项目地址的经历.或者面试时面试官问你的项目在线地址是多少. 二. github 不但有代码托管的功能,还可以搭建在线演示项目,对于一个没有多少私房钱的穷屌丝,这个是不是 ...
- PHP面试题之设计模式
设计模式是技术面试的时候难免会被问到的一个问题,特别会让你举例说明各种设计模式的使用场景. 使用设计模式可以减轻我们的工作量,优化我们的代码. 设计模式非常的多,这里介绍单例模式,工厂模式,组合模式, ...
- windows下使用mingw编译python扩展模块
环境: 1.python2.7.2 2.mingw20120426 说明: PYTHON_HOME:不做特殊说明的话,默认代表python的安装路径. MINGW_HOME:不做特殊说明的话,默认代表 ...
- JNDI support differences between Tibco EMS and ActiveMQ
Introduction Recently our team was working on Veracity Quick Start sprint, when I was trying to migr ...
- gulp api
gulp api 简介 gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:它不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成 gulp是基于Nod ...
- SSH连接不上
网上查了 大概说,一要安装开启ssh服务 然后关掉防火墙 service sshd restart service iptables stop 可是我用了之后还是连接不上, 很郁闷. 我尝试着ping ...
- DLL中传递STL参数,vector对象作为dll参数传递等问题(转)
STL跨平台调用会出现很多异常,你可以试试. STL使用模板生成,当我们使用模板的时候,每一个EXE,和DLL都在编译器产生了自己的代码,导致模板所使用的静态成员不同步,所以出现数据传递的各种问题,下 ...
- java 书籍推荐 JavaEE程序员必读图书大推荐
java 书籍推荐 JavaEE程序员必读图书大推荐 转自:http://www.cnblogs.com/xlwmin/articles/2192775.html 下面是我根据多年的阅读和实践经验,给 ...
- Spring、Spring自动扫描和管理Bean
Spring2.5为我们引入了组件自动扫描机制,它可以在类路径下寻找标记了@Component.@Service.@Controller.@Repository注解的类,并把这些类纳入到spring容 ...
- 关于关注和取消关注的nodejs写法
本例子的关注和取消关注,是通过ajax的方法实现的:nodejs后台写好api接口:响应前台的ajax 先看ajax的代码实现: // 用户关注标签 function subscribe(uid, t ...