趣味取小數

2021-07-27 13:38:09 字數 1306 閱讀 1077

聽說大家最近學得不錯,教授就準備考考大家,先做出來有獎哦~

編寫乙個函式,取乙個小數的第n(-10<=n<=16)位,當n大於0時,從小數點位置開始向右取小數部分第n位,當n小於0時,從小數點位置開始向左取整數部分的第n位。

#include

#include

int get_one_digit(double num,int n); /*函式宣告*/

int main()

主程式已給出,請編寫get_one_digit函式並提交該函式即可

input

乙個小數,取小數的第n位

output

小數的第n位

sample input

5.5772156649015328  10

sample output

9這道題肯定是分n<0和n>0的情況來做的。

當輸入的n大於零時,

我們只看小數部分,所以我們可以對變數進行型別轉換,去掉整數部分

具體做法為:num=num-(long)num;

同樣的這時我們在將num*10;num=num-(long)num;這時候我們便把小數點後第一位數字也去掉了

假設我們需要輸出小數點後第n位的那乙個數字,相當於去掉小數點後n-1位得到新的num,舊的num的第n位小數是新的num的第一位小數,這時我們再將num*10,輸出num的整數部分就可以了

具體做法為:

x=num;

while(n>0)

當n小於零時,

同樣我們只需要看整數部分,num=(long)num取整。

如果我們想得到個位數(即n=-1)我們可以x=num%10;

如果得到想得到十位數字 我們可以num=num/10;x=num%10;

如果要得到第n位數字時我們可以num=num/10的n-1次方;x=num%10;

具體為:

long y;

y=(long)num;

n=-n;

for(i=1;i<=n;i++)

所以整個**為:

#include

#include

#include

int get_one_digit(double num,int n)                    //函式宣告

int main()

int get_one_digit(double num,int n)

return (int)x;                                        //取整

}else

return x;}}

.頂0踩0

第十一周OJ 趣味取小數

問題描述 編寫乙個程式,取第乙個小數的第n 10 n 16 位,當n大於0時,從小數點位置開始向右取小數部分第n位,當n小於0從小數點位置開始向左取整數部分的第n位。檔名稱 the eleventh week oj2965 輸入 乙個含小數的數以及所希望取到的第n位數字 輸出 該位置上的數 incl...

第十一周 oj訓練 趣味取小數

檔名稱 test.cpp 完成日期 2016年11月15日 題目描述 聽說大家最近學得不錯,教授就準備考考大家,先做出來有獎哦 編寫乙個函式,取乙個小數的第n 10 n 16 位,當n大於0時,從小數點位置 開始向右取小數部分第n位,當n小於0時,從小數點位置開始向左取整數部分的第n位。輸入 乙個小...

C語言OJ專案參考 2965 趣味取小數

description 聽說大家最近學得不錯,教授就準備考考大家,先做出來有獎哦 編寫乙個函式,取乙個小數的第n 10 n 16 位,當n大於0時,從小數點位置開始向右取小數部分第n位,當n小於0時,從小數點位置開始向左取整數部分的第n位。include include int get one di...