在C语言中,表示分数可以使用结构体(struct)来实现,结构体是一种自定义的数据类型,可以包含多个不同类型的变量,为了表示一个分数,我们可以创建一个名为Fraction
的结构体,其中包含两个整型变量numerator
(分子)和denominator
(分母),我们可以为这个结构体定义一些操作方法,如加法、减法、乘法等。
(图片来源网络,侵删)
以下是一个简单的C语言分数类实现:
#include <stdio.h> // 定义分数结构体 typedef struct { int numerator; // 分子 int denominator; // 分母 } Fraction; // 创建一个新的分数对象 Fraction create_fraction(int numerator, int denominator) { Fraction 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.denominator * b.denominator; return create_fraction(new_numerator, new_denominator); } // 分数相减 Fraction subtract_fractions(Fraction a, Fraction b) { int new_numerator = 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_numerator = a.numerator * b.numerator; int new_denominator = a.denominator * b.denominator; return create_fraction(new_numerator, new_denominator); } // 分数化简(最大公约数算法) int gcd(int a, int b) { if (b == 0) { return a; } else { return gcd(b, a % b); } } // 分数化简函数(约分) void simplify_fraction(Fraction *fraction) { int greatest_common_divisor = gcd(fraction>numerator, fraction>denominator); fraction>numerator /= greatest_common_divisor; fraction>denominator /= greatest_common_divisor; } int main() { Fraction a = create_fraction(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_fractions(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 (已是最简形式) simplify_fraction(&difference); // 1/6 > 1/6 (已是最简形式) simplify_fraction(&product); // 1/6 > 1/6 (已是最简形式) printf("Sum: %d/%d ", sum.numerator, sum.denominator); printf("Difference: %d/%d ", difference.numerator, difference.denominator); printf("Product: %d/%d ", product.numerator, product.denominator); return 0; }
在这个示例中,我们首先定义了一个名为Fraction
的结构体,用于存储分数的分子和分母,我们定义了一些操作方法,如创建分数、加法、减法、乘法和化简分数,在main
函数中,我们创建了两个分数对象,并使用这些操作方法对它们进行了一系列运算,注意,我们在每次化简分数后都调用了simplify_fraction
函数。
原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/375613.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复