C语言的abs()函数和div()函数你了解吗
C语言库中提供了许多函数,这样需要计算的时候,可以直接借助库函数,而不用自己重新编写函数。今天就来看一下C语言标准库函数里面的整型函数。
int __cdecl abs(int _X); long __cdecl labs(long _X); div_t __cdecl div(int _Numerator,int _Denominator); ldiv_t __cdecl ldiv(long _Numerator,long _Denominator);
abs函数用来计算整数的绝对值,它的参数就是待计算的整数,返回值是计算后的绝对值。编写一段简单的代码,演示一下这个函数的用法。
#include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { int x1 = 56,x2 = -89; int y1,y2; y1 = abs(x1); y2 = abs(x2); printf("%d %d",y1,y2); return 0; }
定义一个正整数,一个负整数,然后用abs函数分别求绝对值,然后将计算的结果打印出来。
如果传递进去的数字不是整数的话,输出的结果是什么呢?
向abs函数里面分别传入一个正的浮点数和一个负的浮点数,计算出来的结果依然是正整数,说明传递参数后,abs函数会将传入的参强制转换为整数,然后在进行计算。
labs函数的功能和abs函数的功能是一样的,不过它主要用来计算长整数的绝对值。
div函数用来计算两个数字相除的商和余数,它有两个参数,用第一个参数(分子)除以第二个参数(分母),然后将商和余数存放在结构体中,返回的结果是一个结构体。它的结构体定义如下:
typedef struct _div_t { int quot; int rem; } div_t; typedef struct _ldiv_t { long quot; long rem; } ldiv_t;
quot 是商,rem 是余数。下面通过一段代码来,来演示一下这个函数的用法。
#include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { int x1 = 10,x2 =3; div_t ret; ret = div(x1,x2); printf("%d %d",ret.quot,ret.rem); return 0; }
计算10 / 3的商和余数,输出结果如下:
同样负整数也可以使用这个函数进行计算。
ldiv函数的功能和div函数的功能一样,不过它主要用来计算长整数的除法。
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!
相关推荐
-
C语言中的abs()函数和exp()函数的用法
C语言abs()函数:求绝对值(整数) 头文件: #include <stdlib.h> 定义函数: int abs (int j); 函数说明:abs()用来计算参数j 的绝对值,然后将结果返回. 返回值:返回参数j 的绝对值结果. 范例 #ingclude <stdlib.h> main(){ int ansert; answer = abs(-12); printf("|-12| = %d\n", answer); } 执行 |-12| = 12 C语言e
-
python 中的divmod数字处理函数浅析
divmod(a,b)函数 中文说明: divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数 返回结果类型为tuple 参数: a,b可以为数字(包括复数) 版本: 在python2.3版本之前不允许处理复数,这个大家要注意一下 英文说明: Take two (non complex) numbers as arguments and return a pair of numbers consisting of their quotient and remainder when
-
Vue render函数实战之实现tabs选项卡组件
用过Element ui库的童鞋肯定知道<el-tabs>组件,简单.好用.可以自定义标签页,不知道广大童鞋们在刚开始使用<el-tabs>组件的时候有没有想过它是如何实现的?我咋刚开始使用<el-tabs>组件的时候就有去想过,也想去实现一个超级简单的tabs选项卡组件,无奈当时功力不够,未能实现.最近的一个简单项目中正好要用到选项卡组件,由于项目简单也就没有使用任何第三方库,于是就自己动手写了个选项卡组件. 1.实现tabs选项卡组件的思考 <el-tabs
-
php bcdiv和bcmul 函数的怪异现象
一.简介 我要实现这样一个表达式 z=总奖金 n=总名数 i=自己的排民 ((n-i+1)/(1+2+3+-n))*z 这是一个分配奖金的式子.我试着用php的bc函数进行操作发现以下两种写法得出不一样的结果 表达式1: a r r [ arr[ arr[i]=bcmul(bcdiv((51- i ) , i), i),num,2), r e w a r d [ ′ L e a d e r b o a r d ′ ] , 0 ) ; 表 达 式 2 : reward['Leaderboard']
-
实例讲解Python3中abs()函数
Python3 abs() 函数 描述 abs() 函数返回数字的绝对值. 语法 以下是 abs() 方法的语法: abs( x ) 参数 x-- 数值表达式,可以是整数,浮点数,复数. 返回值 函数返回 x(数字)的绝对值,如果参数是一个复数,则返回它的大小. 实例 以下展示了使用 abs() 方法的实例: #!/usr/bin/python3 print ("abs(-40) : ", abs(-40)) print ("abs(100.10) : ", abs
-
C语言的abs()函数和div()函数你了解吗
C语言库中提供了许多函数,这样需要计算的时候,可以直接借助库函数,而不用自己重新编写函数.今天就来看一下C语言标准库函数里面的整型函数. int __cdecl abs(int _X); long __cdecl labs(long _X); div_t __cdecl div(int _Numerator,int _Denominator); ldiv_t __cdecl ldiv(long _Numerator,long _Denominator); abs函数用来计算整数的绝对值,它的参数
-
C语言中回调函数和qsort函数的用法详解
目录 回调函数 指向函数指针数组的指针 qsort(qulick sort)-库函数 回调函数 通过函数指针调用的函数,如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数. 回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应. 举例: #include<stdio.h> void menu() { printf("*************************
-
Go语言中的流程控制结构和函数详解
这小节我们要介绍Go里面的流程控制以及函数操作. 流程控制 流程控制在编程语言中是最伟大的发明了,因为有了它,你可以通过很简单的流程描述来表达很复杂的逻辑.Go中流程控制分三大类:条件判断,循环控制和无条件跳转. if if也许是各种编程语言中最常见的了,它的语法概括起来就是:如果满足条件就做某事,否则做另一件事. Go里面if条件判断语句中不需要括号,如下代码所示: 复制代码 代码如下: if x > 10 { fmt.Println("x is greater than 10&
-
C语言中利用封装好的函数实现英文字母的大小写转换
在C语言中,利用tolower和toupper两个函数实现英文字母的大小写之间的转换 范例1:将s字符串内的小写字母转换成大写字母 #include <ctype.h> int main() { char s[] = "aBcDeFgH"; int i; printf("before toupper() : %s\n", s); for(i = 0; i < sizeof(s); i++) s[i] = toupper(s[i]); printf(
-
C语言中用于产生随机数的函数使用方法总结
在UNIX操作系统和window的操作系统上,我们知道有一个函数rand,它就是用来产生随机数的函数API接口,那么它的原理如何实现? 如果约定a1=f(seed),an+1=f(an),那么可以得到一个序列a1,a2,a3..an,那么要制作一个伪随机函数rand,只需要让它每调用一次就返回序列的下一个元素就行.其实就是相当于第1次调用rand返回a1,第2次返回a2,-,第n次返回an,这样每次返回的数值都不一样,也就是相当于随机数了.但是其实不是真正的随机数,真正的随机数是使用物理现象产生
-
C语言文件操作中 fgets与fputs 函数详解
C语言文件操作中 fgets.fputs 函数详解 先给出api fgets 语法: #include <stdio.h> char *fgets( char *str, int num, FILE *stream ); 函数fgets()从给出的文件流中读取[num - 1]个字符并且把它们转储到str(字符串)中. fgets()在到达行末时停止,在这种情况下,str(字符串)将会被一个新行符结束. 如果fgets()达到[num - 1]个字符或者遇到EOF, str(字符串)将会以nu
-
C语言中求字符串长度的函数的几种实现方法
1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) { assert(str != NULL); int count = 0; while (*str != '\0') { count++; str++; } return count; } 2.不创建计数器,从前向后遍历一遍,没有遇到'\0'就让指针向后加一,找到最后一个字符,记下来地址,然后用最后一个字符的地址减去起始地址,就得到了字符串的长度.
-
详解C语言常用的一些转换工具函数
1.字符串转十六进制 代码实现: 2.十六进制转字符串 代码实现: 或者 效果:十六进制:0x13 0xAA 0x02转为字符串:"13AAA2" 3.字符串转十进制 代码实现: 第一种,如果带负号 这个就是atoi函数的实现: 效果:字符串:"-123" 转为 -123 第二种,如果不带负号: 效果:字符串:"123" 转为 123 第三种:包含转为浮点数: 效果:字符串:"123.456" 先转为 123456,然后除以1
-
C语言字符函数、内存函数功能及实现代码
C语言字符函数.内存函数 功能及实现 strlen函数(求字符串长度)注意点模拟实现 strcpy函数(字符串拷贝函数)注意点模拟实现 strcat函数(字符串衔接函数)注意点模拟实现 strcmp函数注意点模拟实现 strstr函数模拟实现 strtok函数使用 strerror函数使用 memcpy函数注意点模拟实现 memmove函数注意点模拟实现 memset函数注意点 strlen函数(求字符串长度) 统计字符串长度直到\0为止 注意点 1.属于<string.h>库 2.参数为字符
-
R语言dplyr包之高效数据处理函数(filter、group_by、mutate、summarise)详解
R语言dplyr包的数据整理.分析函数用法文章连载NO.01 在日常数据处理过程中难免会遇到些难处理的,选取更适合的函数分割.筛选.合并等实在是大快人心! 利用dplyr包中的函数更高效的数据清洗.数据分析,及为后续数据建模创造环境:本篇涉及到的函数为filter.filter_all().filter_if().filter_at().mutate.group_by.select.summarise. 1.数据筛选函数: #可使用filter()函数筛选/查找特定条件的行或者样本 #filte
随机推荐
- 详解Angular2响应式表单
- javascript获取元素CSS样式代码示例
- 详解CentOS中的route命令
- Python简单进程锁代码实例
- JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
- asp.net 自定义控件实现无刷新上传图片,立即显示缩略图,保存图片缩略图
- ASP.NET设计网络硬盘之两重要类代码
- 动网论坛验证码改进 加法验证码(ASPJpeg版)
- 在C语言中调用C++做的动态链接库
- Javascript全局变量var与不var的区别深入解析
- CHM集锦(CHM)
- 详解Java的Hibernat框架中的Map映射与SortedMap映射
- 搭建Eclipse+MyEclipse开发环境
- 通过T-SQL语句实现数据库备份与还原的代码
- php检查是否是ajax请求的方法
- canvas实现流星雨的背景效果
- 判断两种颜色值是否为相似颜色
- script标签属性type与language使用选择
- 深入理解java中this关键字的使用
- Android列表实现(3)_自定义列表适配器思路及实现代码