這題目一看,很多小伙伴可能覺這玩意肯定一遍過,然而,我當(dāng)時(shí)也是這么想的,但現(xiàn)實(shí)是,磨了幾天才寫出來。這次我們選擇先分析題:
首先我們來思考,我們要輸入兩個(gè)整數(shù)但求的卻是小數(shù),要怎么處理呢?
有兩種方法:
1.我們可以在a/b的時(shí)候在a面前乘以1.0來使a變成小數(shù)(因?yàn)樵赾語言中,‘/’號有這樣的法則,整數(shù)除整數(shù)等于整數(shù),且是屬于去尾的那種,而只要除號兩端任意一端有小數(shù),都可以為小數(shù)。)所以我們可以寫這樣的代碼:
#includeint main()
{
int a,b;
while(scanf("%d %d",&a,&b)!=EOF)
{
printf("%.10f\n",1.0*a/b);
}
return 0;
}
嗯,這里有幾點(diǎn)注意的:首先是輸入,在scanf中你是怎樣輸入的,就要用怎樣的格式:比如我輸入a b中間隔了一個(gè)空格,那么在scanf的引號里也要是%d %d的格式,而如果我們?nèi)绻斎氲氖前,b那么輸出也要變%d,%d。這是要注意的,還有一個(gè)就是多組輸入,一般我們就是用上面這個(gè)方法,可以學(xué)一下,具體的理論我也不太清楚。
這里有一點(diǎn)特別要注意的:養(yǎng)成經(jīng)常打換行符的好習(xí)慣,我這么久都過不了就是因?yàn)闆]打換行符,也就是'\n',除非題目格式特殊要求,不然一般都是要打換行符的。
好,繼續(xù)介紹第二種方法。強(qiáng)制轉(zhuǎn)化。我們可以在a或者b的前面加一個(gè)括號里面寫上double。也可以過,如:
#includeint main()
{
int a,b;
while(scanf("%d %d",&a,&b)!=EOF)
{
printf("%.10f\n",(double)a/b);
}
return 0;
}
這也是可以的,當(dāng)然,同樣的你也可以在b前面加也可以,但是不可以這樣(double)(a/b)這樣是錯(cuò)誤的,因?yàn)樗@樣的話就會(huì)讓a/b先計(jì)算出去小數(shù)尾的整數(shù);再加小數(shù)點(diǎn)。同樣這樣也是錯(cuò)的。(這里提一嘴,%f這里變?yōu)?.10f的意思是保留十位小數(shù)).
拓展一個(gè)小知識:這里為什么不用float類型呢?那是因?yàn)殄e(cuò)了,到底為什么錯(cuò)了呢?重點(diǎn)來了:因?yàn)閒loat為單精度浮點(diǎn)類型y十進(jìn)制的有效位數(shù)為7位,double雙精度類型的十進(jìn)制的有效位數(shù)為16位,這就說明白了剛剛為什么float不行。
最后想在激勵(lì)一下自己:
林清玄:"人也要像珍珠貝一樣,養(yǎng)成重塑傷口的本事。轉(zhuǎn)化成生命的創(chuàng)傷,使它變成美麗的珍珠?!痹该恳粋€(gè)受過傷的孩子都能堅(jiān)強(qiáng)的重新站起來,去努力追尋心中的光·。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
文章名稱:我的刷題之旅1-創(chuàng)新互聯(lián)
URL地址:http://muchs.cn/article20/dsigjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、動(dòng)態(tài)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、服務(wù)器托管、軟件開發(fā)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容