(模擬保留小數字的過程):
思路:這道題主要要注意的是小數的位數需要人工輸入,就是模擬保留小數字的過程,具體的思路是先輸出整數字和小數點,小數字則通過上一次除后的所得餘數再除除數依次類推,到最後一位時要根據下一位的數值來判斷是否進製。
這裡選擇題目的樣例就是1/6,輸出至小數點後4位數,先求出他們的商,既1÷6=0······1。商為0餘數為1。那麼此時就列印出」0.」來。此時應該算十分位,所以餘數1應該乘以10為10,保持被除數和除數字數一致。10÷6=1······4。商為1餘數為4。此時列印出來「1」來。則輸出的為「0.1」。再算百分位:40÷6=6······4,商為6餘數為4。此時列印出「6」。輸出介面輸出「0.16」。以上辦法得出千分位和萬分位。輸出介面輸出結果為「0.1666」。此時就有四位小數,但是還要檢查最後一位是否為四捨五入。再次計算十萬分位,發現商為6,那麼萬分位就要進一。最後結果為「0.1667」。
#include
int n,m[
110]
;//n整數部分,m小數部分
intmain()
if(a*
10/b>=5)
//第c+1位,四捨五入
} n=n+m[0]
;//整數部分進製處理。
printf
("case %d: %d."
,k,n)
;//列印整數部分及小數點
for(i=
1;i<=c;i++
)printf
("%d"
,m[i]);
//列印小數部分。
printf
("\n");
}return0;
}
習題2 5 分數化小數
演算法競賽入門經典 第2版 第2章 迴圈結構程式設計 本章有兩個難題 習題2 4 子串行之和,習題2 5 分數化小數。習題2 5 分數化小數 訪問量如此之大,證明讀者有需求,並且之前寫的程式有瑕疵,處理不了進製問題,故決定重寫該題 2018 8 9 9 28 以下 為ac 完全符合題意的 可以應對測...
2 5 分數化小數
輸入正整數a,b,c,輸出a b的小數形式,精確到小數點後c位。a,b 10 c 100。輸入包含多組資料,結束標記為a b c 0。樣例輸入 1 6 4 0 0 0 樣例輸出 case 1 0.1667 渣渣智本以為這道題很簡單,然而。如果很多很多很多小數點後的位數怎麼辦,也就是c,然後就找了很多...
演算法入門經典習題 2 5 分數化小數
題目 輸入正整數a,b,c,輸出 a b 的小數形式 精確到小數點後 c 位 a,b 10的六次方,c 100.輸入包含多組資料,結束標記為a b c 0 樣例輸入 1 6 4 0 0 0 樣例輸出 case 1 0.1667 理解 一開始就以為會是那樣的就正常想的用double來宣告一下結果,然後...