1樓:Vukr
題主既然要求"不用約分", 那看來就是想用下面這種方式來轉化了:
這兩步可以這麼操作:
#include
#include
intmain
()int
molecule=(
int)
molecule_f
;printf
("%f = %d/%d\n"
,num
,molecule
,denominator
);//約分
intmax
;int
min;if(
molecule
>denominator
)else
inthcf
=max
%min
;while
(hcf
)molecule
=molecule
/min
;denominator
=denominator
/min
;printf
("%f = %d/%d\n"
,num
,molecule
,denominator);}
實際上有另一種方式來實現轉化, 那就是借助連分數[1][2]來作為中間橋梁.
連分數可以這麼來求:
使用乙個鍊錶來儲存這個連分數(C沒有動態陣列):
#include
#include
struct
node
;void
swap
(int*a
,int*b
)// 小數 -> 連分數
struct
node
*decimal2ContinuedFraction(double
num,
intprecision
)num=1
/(num-
integerPart
);times++;
}return
head;}
// 連分數 -> 分數
void
continuedFraction2Fraction(struct
node
*array
,int
*molecule
,int
*denominator
)struct
node*p
=tail;*
molecule=1
;*denominator=p
->data
;while(p
->before
->before
!=NULL
)swap
(molecule
,denominator);}
intmain
()程式中實際使用的鍊錶是有乙個頭結點的.
第一種做法有個問題, 如果num是自己輸入的數還沒什麼區別, 但是下面這種情況就出問題了, 題主可以試一試(逃
srand
((unsigned
)time
(NULL
));double
num=
(double
)rand()/
(double
)RAND_MAX
;......
而第二種方式的結果是一步步逼近的, 所以就不會出現狗屎的情況.
jquery 中如何將陣列轉化為json字串,然後再轉化回來?
w stone jQuery中沒有提供這個功能,所以你需要先編寫兩個jQuery的擴充套件 fn.stringifyArray function arrayreturn JSON.stringify arrayfn.parseArray function arrayreturn JSON.parse...
Python如何將字串式列表轉化為可以操作的列表
海闊and天空 方式1 給a加上引號,然後使用eval轉化格式不就行啦,注意字串外雙內單或外單內雙 str1 1,2,a 2,4 6 print str1 print type str1 list1 eval str1 print list1 print type list1 檢視物件型別 執行結果...
如何將交流電轉化為直流電
推薦一本書模擬電子技術基礎,這個裡面有講解。交流轉化為直流,需要整流,主要是利用二極體的單向導電性,簡單介紹下面兩種方式 1,半波整流電路 L在正半週期時D1 D2正向偏置,電流從L經過D1,R1,D2到NL 在負半週期時D1 D2反向偏置,無電流整流前後電壓對比,只有半個週期被整流成直流2,橋式整...