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函數的功能一樣,不過它主要用來計算長整數的除法。
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!