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語言對CSV文件從最后往前一行一行讀取的實現(xiàn)方法
今天小編就為大家分享一篇關于C語言對CSV文件從最后往前一行一行讀取的實現(xiàn)方法,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
win10系統(tǒng)下?VS2019點云庫PCL1.12.0的安裝與配置教程
點云庫全稱是Point?Cloud?Library(PCL),是一個獨立的、大規(guī)模的、開放的2D/3D圖像和點云處理項目,這篇文章主要介紹了win10系統(tǒng)下?VS2019點云庫PCL1.12.0的安裝與配置,需要的朋友可以參考下2022-07-07
include包含頭文件的語句中,雙引號和尖括號的區(qū)別(詳解)
下面小編就為大家?guī)硪黄猧nclude包含頭文件的語句中,雙引號和尖括號的區(qū)別(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07

