聽說大家最近學得不錯,教授就準備考考大家,先做出來有獎哦~
編寫乙個函式,取乙個小數的第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...