日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達者為師

網(wǎng)站首頁 編程語言 正文

C語言的abs()函數(shù)和div()函數(shù)你了解嗎_C 語言

作者:嵌入式@hxydj ? 更新時間: 2022-04-24 編程語言

C語言庫中提供了許多函數(shù),這樣需要計算的時候,可以直接借助庫函數(shù),而不用自己重新編寫函數(shù)。今天就來看一下C語言標(biāo)準(zhǔn)庫函數(shù)里面的整型函數(shù)。

  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函數(shù)用來計算整數(shù)的絕對值,它的參數(shù)就是待計算的整數(shù),返回值是計算后的絕對值。編寫一段簡單的代碼,演示一下這個函數(shù)的用法。

#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;
}

定義一個正整數(shù),一個負整數(shù),然后用abs函數(shù)分別求絕對值,然后將計算的結(jié)果打印出來。

image.png

如果傳遞進去的數(shù)字不是整數(shù)的話,輸出的結(jié)果是什么呢?

image.png

abs函數(shù)里面分別傳入一個正的浮點數(shù)和一個負的浮點數(shù),計算出來的結(jié)果依然是正整數(shù),說明傳遞參數(shù)后,abs函數(shù)會將傳入的參強制轉(zhuǎn)換為整數(shù),然后在進行計算。

labs函數(shù)的功能和abs函數(shù)的功能是一樣的,不過它主要用來計算長整數(shù)的絕對值。

div函數(shù)用來計算兩個數(shù)字相除的商和余數(shù),它有兩個參數(shù),用第一個參數(shù)(分子)除以第二個參數(shù)(分母),然后將商和余數(shù)存放在結(jié)構(gòu)體中,返回的結(jié)果是一個結(jié)構(gòu)體。它的結(jié)構(gòu)體定義如下:

  typedef struct _div_t {
    int quot;
    int rem;
  } div_t;
  typedef struct _ldiv_t {
    long quot;
    long rem;
  } ldiv_t;

quot?是商,rem?是余數(shù)。下面通過一段代碼來,來演示一下這個函數(shù)的用法。

#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的商和余數(shù),輸出結(jié)果如下:

image.png

同樣負整數(shù)也可以使用這個函數(shù)進行計算。

image.png

ldiv函數(shù)的功能和div函數(shù)的功能一樣,不過它主要用來計算長整數(shù)的除法。

總結(jié)

原文鏈接:https://hxydj.blog.csdn.net/article/details/122961834

欄目分類
最近更新