
在C語(yǔ)言中,語(yǔ)言中表示分數可以使用結構體(struct)來(lái)實(shí)現,表示結構體是分數一種自定義的數據類(lèi)型,可以包含多個(gè)不同類(lèi)型的語(yǔ)言中變量,為了表示一個(gè)分數,表示我們可以創(chuàng )建一個(gè)名為Fr(′?_?`)action的分數結構體,其中包含兩個(gè)整型變量numerator(分子)和denomin??ator(分母),??語(yǔ)言中我們可以為這個(gè)結構體定義一些操作方法,表示如加法(╯°□°)╯(fa)、分數減法、??語(yǔ)??言中乘法等。表示
以下是語(yǔ)言中一個(gè)簡(jiǎn)單的C語(yǔ)言分數類(lèi)實(shí)現:
#include <stdio.h>// 定義分數結構體typedef struct { int numerator; // 分子 int denominator; // 分母} Fraction;// 創(chuàng )建一個(gè)新的分數對象Fraction cre(′?_?`)ate_fraction(′ω`*)(int numerator, int denominator) { Fract(╬?益?)ion fraction; fraction.numerator = numerator; fraction.denominator = denominator; return fraction;}// 分數相加Fraction add_fractions(Fraction a, Fraction b) { int new_numerator = a.numerator * b.denominator + b.numerator * a.denominator; int new_denominator = a.denominaˉ\_(ツ)_/ˉtor * b.denominator; return create_fractio(′_`)n(new_n(′▽?zhuān)?umerator, ne(′▽?zhuān)?w_(′ω`)den(?⊿?)ominator??);}// 分數相減Fr??action subtract_fractions(Fraction a, Fraction b) { int new_n??umerator = a.numerator * b.denominator b.numerator * a.denominator; int new_denominator = a.denominator * b.denominator; return create_fraction(new_numerator, new_denominator);}// 分數相乘Fraction multiply_fractions(Fraction a, Fraction b) { int new_numer??ator = a.numerator * b.numerator; int new_denominator = a.denominator * b.denominator; return create_fraction(new(′?`)_numerator, new_denominator);}// 分數化簡(jiǎn)(最大公約數算法)int gcd(int a, int b) { if (b == 0) { return a; } else { return gcd(′?_?`)(b, a % b); }}// 分數化簡(jiǎn)函數(約分)void simplify_fraction(Fraction *fraction) { int greatest_common_divisor(╥_╥) = gcd(fraction>numera??tor, fraction>denominator); fraction>numerator /= greatest_common_divisor; fraction>denomin(′?ω?`)ator /= gr(???)eate(′?`*)st_common_divisor;}int main() { Fraction a = create_fractio(′?`*)n(1, 2); // 1/2 Fraction b = create_fraction(1, 3); // 1/3 Fraction sum = add_fractions(a, b); // 1/2 + 1/3 = 5/6 Fraction difference = subtract_fr(°o°)actions(a, b); // 1/2 1/3 = 1/6 Fraction product = multiply_fractions(a, b); // 1/2 * 1/3 = 1/6 simplify_fraction(&sum); // 5/6 > 5/6 (已是最簡(jiǎn)形式(′_ゝ`)) simplify_fraction(&difference); // 1/6 > 1/6 (已是最簡(jiǎn)形式) simplify_frヽ(′ー`)ノaction(&product); // 1/6 > 1/6 (已是最簡(jiǎn)形式) printf("Sum: %d/%d&(?????)quot;, sum.numerator, sum.denominator); printf(&(╯°□°)╯quot;Difference: %d/%d", difference.numerator, difference.denominator); pr(′_ゝ`)intf("Product: %d/%d&quo??t;, product.nume???rator, product.denominator); return 0;}在這個(gè)示例(╬ ò﹏ó)中,我們首先定義了一個(gè)名為F??raction的表示結(jie)構體,用于存儲分數的分數分子和分母,我們定義了一些操作方法,如創(chuàng )建分數、加法、減法、乘法和化簡(jiǎn)分數,??在main函數中,我們創(chuàng )建了兩個(gè)分數對象,并使用這些操作方法對它們進(jìn)行了一系列運算,注意,我們在每次化簡(jiǎn)分數后都調用了simplify_fra??ction函數。