分數轉小數C

2021-10-04 08:52:38 字數 1232 閱讀 4061

題目描述:編寫程式,接受3個以n/d形式輸入的分數,其中n(0<=n<=65535)為分子,d(0<=d<=65535)為分母,輸出它們的小數形式。如果小數形式存在迴圈節,則用括號括起來。如1/3=.3333…表示為.(3)。

輸入用例

8/5 1/3 11/13

輸出用例

8/5=1.6

1/3=.(3)

11/13=.(846153)

思路:當有餘數與之前餘數相同時則表明發生迴圈。剛開始無思路參考他人部落格,其實根本原因在於根本就不會判斷什麼樣的分數是有迴圈節的。

參考部落格:

參考1參考2

**:

#include

using

namespace std;

struct fraction

;//小數部分 };

intmain()

;//儲存餘數

printf

("%d/%d="

,fra[i]

.numerator,fra[i]

.denominator)

; fra[i]

.integer=fra[i]

.numerator/fra[i]

.denominator;

int cnt=

0,flag=-1

;//cnt小數字數 flag記錄迴圈開始的數字

r[cnt]

=fra[i]

.numerator%fra[i]

.denominator;

//得到餘數

while

(r[cnt]

)//若有此餘數與之前餘數相等 則發生迴圈 }if

(flag!=-1

)break

; cnt++

; r[cnt]

=r[cnt-1]

*10%fra[i]

.denominator;}if

(fra[i]

.integer!=

0) cout<.integer;

//整數部分不為0時輸出

cout<<

".";

//小數點

for(

int j=

0;j(flag==-1

) cout

else cout<<

")"<}return0;

}

分數轉小數

include include include ftd.h using namespace std 功能 根據輸入的分子與分母,輸出計算結果。無限非迴圈小數,直接輸出計算結果 輸入 denominator 分母 numerator 分子 輸出 decimaltostring 輸出計算結果 返回 1 ...

小數化分數(C )

問題描述 任何小數都能表示成分數的形式,對於給定的小數,編寫程式其化為最簡分數輸出,小數包括簡單小數和迴圈小數。輸入形式 第一行是乙個整數n,表示有多少組資料。每組資料只有乙個純小數,也就是整數部分為0。小數的位數不超過9位,迴圈部分用 括起來。輸出形式 對每乙個對應的小數化成最簡分數後輸出,佔一行...

php 百分數 php 百分數如何轉小數

php百分數轉小數的方法 首先建立乙個php示例檔案 然後定義乙個百分數 接著通過 float a 100 方法將百分數轉為小數 最後通過echo輸出轉換後的小數即可。php百分數轉小數,php 小數轉換百分數函式 阿星小棧 php百分號轉小數 a 20.544545 echo float a 10...