欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C语言的abs()函数和div()函数你了解吗

程序员文章站 2023-01-09 17:39:01
c语言库中提供了许多函数,这样需要计算的时候,可以直接借助库函数,而不用自己重新编写函数。今天就来看一下c语言标准库函数里面的整型函数。 int __cdecl abs(int _x); long...

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函数分别求绝对值,然后将计算的结果打印出来。

C语言的abs()函数和div()函数你了解吗

如果传递进去的数字不是整数的话,输出的结果是什么呢?

C语言的abs()函数和div()函数你了解吗

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的商和余数,输出结果如下:

C语言的abs()函数和div()函数你了解吗

同样负整数也可以使用这个函数进行计算。

C语言的abs()函数和div()函数你了解吗

ldiv函数的功能和div函数的功能一样,不过它主要用来计算长整数的除法。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!