mod的原理就是求余數(shù)。
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、網(wǎng)站設(shè)計(jì)、陽(yáng)曲網(wǎng)絡(luò)推廣、小程序定制開發(fā)、陽(yáng)曲網(wǎng)絡(luò)營(yíng)銷、陽(yáng)曲企業(yè)策劃、陽(yáng)曲品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供陽(yáng)曲建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:chinadenli.net
比如:10除以3,商是3,余數(shù)是1
在c++里面,用'/'表示求商,而用%表示秋余數(shù)
所以10/3=3,10%3=1。
擴(kuò)展資料:
語(yǔ)法:
MOD(number,divisor)
參數(shù):
Number 為被除數(shù)。
Divisor 為除數(shù)。
在Oracle中,如果 divisor 為0,則函數(shù)直接返回number。
說(shuō)明:
函數(shù)MOD可以借用函數(shù) INT 來(lái)表示:
MOD(n, d) = n - d*INT(n/d)
示例:
MOD(3, 2) 等于 1
MOD(-3, 2) 等于1
MOD(3, -2) 等于-1
MOD(-3, -2) 等于-1
MOD(-3, 0) 等于-3
MOD(3, 0) 等于3
MOD(2, 0) 等于2
MOD(4, 3) 等于1
而在Excel中,除數(shù)不能為0,否則會(huì)報(bào)錯(cuò)。
MOD(3, -2) 等于-1(與后面的數(shù)符號(hào)相同)
MOD(3, 0) 報(bào)錯(cuò),輸出結(jié)果為#DIV/0!
參考資料:
百度百科-MOD函數(shù)
如果要寫個(gè)函數(shù)支持多種數(shù)據(jù)類型,首先想到的就是C++的模板了,但是有時(shí)候只能用C語(yǔ)言,比如在linux內(nèi)核開發(fā)中,為了減少代碼量,或者是某面試官的要求…
考慮了一陣子后,就想到了qsort上.qsort的函數(shù)原型:
void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )(const void *elem1, const void *elem2 ) );
快排時(shí),只要自己實(shí)現(xiàn)相應(yīng)數(shù)據(jù)類型的比較函數(shù)cmpare就可以了.如果比較int型時(shí),一個(gè)典型的compare函數(shù)如下:
那么,就是說(shuō)可以利用void *. void *意指未指定類型,也可以理解為任意類型。其他類型的指針可以直接賦值給void *變量,但是void *變量需要強(qiáng)制類型轉(zhuǎn)換為其它指針類型。這個(gè)相信大家都知道。那么下面以一個(gè)簡(jiǎn)單的題目為例,來(lái)探討如何在C語(yǔ)言中實(shí)現(xiàn)模板函數(shù)。
方法1: 利用void *.
在看下面的源程序之前,需要了解幾點(diǎn)。首先,在32位平臺(tái)上,任何類型的指針?biāo)嫉淖止?jié)都是4個(gè)字節(jié),因?yàn)?2位機(jī)器虛擬內(nèi)存一般為4G,即2的32次方,只要32位即4個(gè)字節(jié)就可以足夠?qū)ぶ?,sizeof(void *)=4; 其次,雖然各種不同類型的指針?biāo)嫉目臻g都為4個(gè)字節(jié),但是不同類型的指針?biāo)傅目臻g的字節(jié)數(shù)卻不同(這一點(diǎn)尤為重要,下面的程序我在開始沒(méi)有調(diào)通就因?yàn)檫@點(diǎn)意識(shí)不強(qiáng))。所以,如果你將一個(gè)指針強(qiáng)制轉(zhuǎn)換為另一個(gè)類型的指針,指針本身所占的字節(jié)是不變的,但是,如果對(duì)這個(gè)指針進(jìn)行運(yùn)算,比如 *p,p++,p-=1等一般都是不同的。 再次,函數(shù)指針應(yīng)該了解下,這里不多說(shuō)。 最后,因?yàn)镾andy跟我說(shuō),C++開始的時(shí)候模板的實(shí)現(xiàn)其實(shí)就是利用宏替換,在編譯的時(shí)候確定類型。所以,為了方便,類型也用了預(yù)編譯指令#define。
span#include?"stdio.h"/span
span#include?"stdlib.h"/span
span//typedef?int?T;??//或者下面的也可以./span
span#define??T?int/span
//這個(gè)FindMin是Sandy寫的.felix021也寫了個(gè),差不多的就不貼出來(lái)的.
void?FindMin(const?void??*arr,int?arr_size,int?arrmembersize,int?*index,
int?(*cmp)(const?void?*,const?void?*b)){
int?i;
*index=0;
char?*p=(char?*)arr;
char?*tmp=p;
for?(i=1;iarr_size?;i++){
if?(cmp(tmp,p)0){
tmp=p;
}
p+=arrmembersize;
}
(*index)=((int)(tmp-arr))/arrmembersize;
}
*//span
可以把指針看作是char?*,如果轉(zhuǎn)換為int?*,那下面的位移就不正確了./span
indexspan=/spanispan;/span
span}/span
span}/span
spanreturn/span?indexspan;/span
span}/span
spanint/span?resultspan;/spanspan//result保存的是最小值索引./span
resultspan=/spanFindMinspan(/spanarr,span12/span,
C語(yǔ)言提供了一個(gè)取余數(shù)的運(yùn)算符%,稱之為“?!边\(yùn)算符,只有兩個(gè)整數(shù)之間才可以進(jìn)行模運(yùn)算。
a % b 表示 用b來(lái)整除a,商整數(shù),得到余數(shù)。
如:
5%3 = 2
4%3 =1
3%3 =0
擴(kuò)展資料:
數(shù)學(xué)函數(shù)
double log10(double x) 返回log10x的值
double pow(double x,double y) 返回x^y的值
double?pow10(int p) 返回10^p的值
double sqrt(double x) 返回+√x的值
double acos(double x) 返回x的反余弦cos-1(x)值,x為弧度
double asin(double x) 返回x的反正弦sin-1(x)值,x為弧度
double atan(double x) 返回x的反正切tan-1(x)值,x為弧度
double atoi(char *nptr) 將字符串nptr轉(zhuǎn)換成整數(shù)并返回這個(gè)整數(shù)
double atol(char *nptr) 將字符串nptr轉(zhuǎn)換成長(zhǎng)整數(shù)并返回這個(gè)整數(shù)
char *ecvt(double value,int ndigit,int *decpt,int *sign),將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串
char *fcvt(double value,int ndigit,int *decpt,int *sign),將浮點(diǎn)數(shù)value轉(zhuǎn)換成字符串并返回該字符串
參考資料來(lái)源:百度百科-C語(yǔ)言函數(shù)
它不是說(shuō)得很詳細(xì)了么, 向負(fù)無(wú)窮方向舍入(floor()函數(shù) (又稱為地板函數(shù), 與之相對(duì)還有天花板函數(shù))--往小方向取整,即向負(fù)無(wú)窮方向取整), 8/3=2.67的地板為2(即模為2), -8/3=-2.67的地板為-3(即模為-3)
取模運(yùn)算:a % p(或a mod p),表示a除以p的余數(shù)。
比如給定一個(gè)正整數(shù)p,任意一個(gè)整數(shù)n,一定存在等式 :n = kp + r ;其中 k、r 是整數(shù),且 0 ≤ r p,則稱 k 為 n 除以 p 的商,r 為 n 除以 p 的余數(shù)。
取模運(yùn)算的規(guī)則如下:
1、(a + b) % p = (a % p + b % p) % p 。
2、(a - b) % p = (a % p - b % p) % p 。
3、(a * b) % p = (a % p * b % p) % p 。
4、a ^ b % p = ((a % p)^b) % p 。
擴(kuò)展資料:
取模運(yùn)算在c語(yǔ)言中的應(yīng)用范圍:
1、判別奇偶數(shù)
奇偶數(shù)的判別是模運(yùn)算最基本的應(yīng)用,也非常簡(jiǎn)單。已知一個(gè)整數(shù)n對(duì)2取模,如果余數(shù)為0,則表示n為偶數(shù),否則n為奇數(shù)。
2、判別素?cái)?shù)
一個(gè)數(shù),如果只有1和它本身兩個(gè)因數(shù),這樣的數(shù)叫做質(zhì)數(shù)(或素?cái)?shù))。例如 2,3,5,7 是質(zhì)數(shù),而 4,6,8,9 則不是,后者稱為合成數(shù)或合數(shù)。用不比該自然數(shù)的平方根大的正整數(shù)去除這個(gè)自然數(shù),若該自然數(shù)能被整除,則說(shuō)明其非素?cái)?shù)。
3、求最大公約數(shù)
求最大公約數(shù)最常見(jiàn)的方法是歐幾里德算法(又稱輾轉(zhuǎn)相除法),其計(jì)算原理依賴于定理:gcd(a,b) = gcd(b,a mod b)。
參考資料來(lái)源:百度百科:取模運(yùn)算
網(wǎng)站名稱:c語(yǔ)言模函數(shù) c語(yǔ)言求模用法
URL地址:http://chinadenli.net/article18/hgchdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、小程序開發(fā)、網(wǎng)站營(yíng)銷、靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)