c語言取整和取余:
為福綿等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及福綿網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、福綿網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
示例
public class Demo_1 {undefined
public static void main(String args) {undefined
Scanner sc = new Scanner(System.in)
System.out.print("請(qǐng)輸入要判斷的數(shù)字(五位數(shù)):")
int num = sc.nextInt()
sc.close()
//截取最后一位數(shù)
int a = num % 10
//截取第一位數(shù)
int b = num / 10000
//截取第四位數(shù)
int c = num % 100 / 10
//截取第二位數(shù)
int d = num / 1000 % 10
System.out.println(a + "," + b + "," + c + "," + d)
boolean b1 = (a == b)
boolean b2 = (c == d)
if(b1 b2) {undefined
System.out.println(num + "是回文數(shù)")
}else {undefined
System.out.println(num + "不是回文數(shù)")
}
}
}
1.直接賦值給整數(shù)變量
int i = 3.5;或i = (int) 3.5。
這樣的方法采用的是舍去小數(shù)部分。
2、整數(shù)除法運(yùn)算符‘/’取整
‘/’本身就有取整功能(int / int),可是整數(shù)除法對(duì)負(fù)數(shù)的取整結(jié)果和使用的C編譯器有關(guān)。
參與運(yùn)算量均為整型時(shí),
結(jié)果也為整型,舍去小數(shù)。如果運(yùn)算量中有一個(gè)是實(shí)型,則結(jié)果為雙精度實(shí)型。
printf("%d,%d\n",10/3,-10/3);
printf("%f,%f\n",10.0/3,-10.0/3);
c語言有以下幾種取整方法:
1、直接賦值給整數(shù)變量。如:
int
i
=
2.5;
或
i
=
(int)
2.5;
這種方法采用的是舍去小數(shù)部分,可以用于你的問題。
2、c/c++中的整數(shù)除法運(yùn)算符"/"本身就有取整功能(int
/
int),而下面介紹的取整函數(shù)返回值是double。整數(shù)除法對(duì)正數(shù)的取整是舍去小數(shù)部分,但是整數(shù)除法對(duì)負(fù)數(shù)的取整結(jié)果和使用的c編譯器有關(guān)。
3、使用floor函數(shù)。floor(x)返回的是x的整數(shù)部分。如:
floor(2.5)
=
2
floor(-2.5)
=
-3
4、使用ceil函數(shù)。ceil(x)返回的是不大于x的最小整數(shù)。如:
ceil(2.5)
=
2
floor和ceil對(duì)于正數(shù)沒有區(qū)別,但是對(duì)于負(fù)數(shù)結(jié)果不同。
在 C 語言中,取整的規(guī)則取決于使用的取整函數(shù)。
如果使用內(nèi)置的取整函數(shù) floor(),則取整的規(guī)則為向下取整,即取最大的整數(shù),小于等于原數(shù)。例如:
floor(3.14)? # 輸出 3
floor(-3.14)? # 輸出 -4
如果使用內(nèi)置的取整函數(shù) ceil(),則取整的規(guī)則為向上取整,即取最小的整數(shù),大于等于原數(shù)。例如:
ceil(3.14)? # 輸出 4
ceil(-3.14)? # 輸出 -3
如果使用內(nèi)置的取整函數(shù) round(),則取整的規(guī)則為四舍五入,即取最接近原數(shù)的整數(shù)。例如:
round(3.14)? # 輸出 3
round(3.5)? # 輸出 4
round(-3.14)? # 輸出 -3
round(-3.5)? # 輸出 -4
注意:floor() 和 ceil() 函數(shù)需要使用 math.h 頭文件。
#include math.h
另外,還可以使用類型轉(zhuǎn)換運(yùn)算符(即 (int) 運(yùn)算符)將浮點(diǎn)數(shù)強(qiáng)制轉(zhuǎn)換成整型,實(shí)現(xiàn)取整的效果。例如:
(int)3.14? # 輸出 3
(int)-3.14? # 輸出 -3
但是這種方法不會(huì)準(zhǔn)確地處理負(fù)數(shù)
(int)-3.5? # 輸出 -3(不是正確的答案)
首先在C語言中要用到指數(shù)、對(duì)數(shù)的相關(guān)公式,需要引入math.h。另外ln是以e為底數(shù),lg是以10為底數(shù)。
代碼如下:
#includestdio.h
#includemath.h
void main()
{
double exponent, base;
exponent = 3.14;
printf("ln(%f) = %.2f\n", exponent, log(exponent));//以e為底數(shù)的對(duì)數(shù)
exponent = 100;
printf("lg(%.f) = %.2f\n", exponent, log10(exponent));//以10為底數(shù)的對(duì)數(shù)
base = 5, exponent = 100;
printf("log_%.f(%.f) = %.2f\n", base, exponent, log(exponent)/log(base));//換底公式
return 0;
}
在求log_5(100)時(shí)需要用到“換底公式”:log_5(100) = ln(100)/ln(5)。
擴(kuò)展資料:
math.h文件中包含的函數(shù)主要分為以下幾類:
1、三角函數(shù)、反三角函數(shù)、雙曲三角函數(shù)。
2、指數(shù)、對(duì)數(shù)。
3、取整、絕對(duì)值。
4、標(biāo)準(zhǔn)化浮點(diǎn)數(shù)。
涉及參數(shù)類型為double類型。
參考資料:
百度百科——換底公式
百度百科——math.h
可以參考下面的代碼:
#include stdio.h
int main(int argc, char* argv[])
{
int num;
scanf("%d",num);
printf("%o",num);
return 0;
}
擴(kuò)展資料:
C語言log()函數(shù):返回x的自然對(duì)數(shù)(以e為底的對(duì)數(shù))
C語言ldiv()函數(shù):求兩個(gè)數(shù)的商和余數(shù)(針對(duì)long類型)
C語言ceil()函數(shù):求不小于x的最小整數(shù)(向上取整)
C語言floor()函數(shù):求不大于x的最大整數(shù)(向下取整)
C語言fabs()函數(shù):求雙精度浮點(diǎn)數(shù)的絕對(duì)值
int tolower(int ch) 若ch是大寫字母('A'-'Z')返回相應(yīng)的小寫字母('a'-'z')
參考資料來源:百度百科-C語言函數(shù)
參考資料來源:百度百科-c語言