華中科技大學計算機學院2023年複試機試題

2021-10-03 16:30:23 字數 1536 閱讀 3301

編寫程式,接受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...