編寫程式,接受3個以n/d形式輸入的分數,其中n(0<=n<=65535)為分子,d(0<=d<=65535)為分母,輸出他們的小數形式。如果小數存在迴圈節,則用括號括起來,如1/3=.33333…表示為0.(3)。
例如,輸入:8/5 1/3 11/13
則輸出為:8/5=1.6
1/3=0.(3)
11/13=0.(846153)
#include
#include
#define max 500
typedef
struct div
***;
*** dv[max]
;//假定在小數點後500位內能夠找到迴圈節
intis_relative
(int
,int);
intmain()
else
if(b ==1)
if(a ==0)
int temp =
is_relative
(a, b)
;while
(temp !=1)
//化為最簡式
temp = b;
while
(temp %5==
0|| temp %2==
0)if(temp ==1)
//是有限小數
printf
("\n");
}}else
//是無限小數
i =0;
printf
("%d/%d=%d."
, ta, tb, a/b)
; yushu = a -
(a / b)
* b;
dv[i]
.ys = yushu;
result = yushu *10;
shang = result / b;
dv[i]
.sh = shang;
i++;while
(!flag)
} i++;}
i =0;
//printf("%d %d\n", start, end);
while
(i < start)
printf
("(");
for(
; i <= end; i++
)printf
("%d"
, dv[i]
.sh)
;printf
(")\n");
}}return0;
}int
is_relative
(int a,
int b)
return1;
}
因為有限小數需要輸出所有的尾數且不能輸出多餘的0,所以我直接按手算除法的過程輸出了所有尾數直到餘數為0。其實該**還可以大大優化,例如不需化為最簡式,也不用分為有限小數和無限小數,直接由餘數為0時或者遇到 第二個迴圈節的起始數字 時停止輸出即可。 華中科技大學 找位置
題目描述 對給定的乙個字串,找出有重複的字元,並給出其位置,如 abcaaab12ab12 輸出 a,1 a,4 a,5 a,10,b,2 b,11,1,8 1,12,2,9 2,13。輸入描述 輸入包括乙個由字母和數字組成的字串,其長度不超過100。輸出描述 可能有多組測試資料,對於每組資料,按照...
奇偶校驗 華中科技大學計算機題
題目描述 輸入乙個字串,然後對每個字元進行奇校驗,最後輸出校驗後的二進位制數 如 3 輸出 10110011 輸入描述 輸入包括乙個字串,字串長度不超過100。輸出描述 可能有多組測試資料,對於每組資料,對於字串中的每乙個字元,輸出按題目進行奇偶校驗後的數,每個字元校驗的結果佔一行。輸入例子 3 3...
華中科技大學複試 對稱矩陣
題目描述 輸入乙個n維矩陣,判斷是否對稱。輸入描述 輸入第一行包括乙個數 n 1 n 100 表示矩陣的維數。接下來的n行,每行包括n個數,表示n n矩陣的元素。輸出描述 可能有多組測試資料,對於每組資料,輸出 yes 表示矩陣為對稱矩陣。輸出 no 表示矩陣不是對稱矩陣。示例輸入4 16 19 1...