C程序:两个分数相加

1. 简介

分数相加是初等数学中经常涉及的计算,通过C语言编写程序实现分数的加法可提高程序设计能力和编码水平,为日后更高阶的软件开发打下基础。

2. 分数的基本概念

2.1 分数的表示

分数由两个整数表示,一个表示分子,另一个表示分母。分母不能为0。通常表示为:$$\frac{a}{b}$$

2.2 分数的加法

分数相加时,只需使两个分数的分母相等后,将分子相加即可。加法计算公式如下:

$$\frac{a}{b} + \frac{c}{d} = \frac{ad+bc}{bd}$$

3. C语言程序实现

在C语言中,我们可以通过定义结构体类型来表示分数,其中分子和分母均为整数类型。

struct Fraction{

int numerator;

int denominator;

};

接下来让我们来实现分数相加的C语言程序:

#include <stdio.h>

#include <stdlib.h>

struct Fraction {

int numerator; // 分子

int denominator; // 分母

};

// 求两个数的最大公约数

int gcd(int a, int b) {

if (b == 0) {

return a;

}

return gcd(b, a % b);

}

// 分数相加

struct Fraction add(struct Fraction a, struct Fraction b) {

struct Fraction res;

res.denominator = a.denominator * b.denominator / gcd(a.denominator, b.denominator); // 公倍数

res.numerator = a.numerator * (res.denominator / a.denominator) + b.numerator * (res.denominator / b.denominator); // 求和

// 约分

int t = gcd(res.numerator, res.denominator);

res.numerator /= t;

res.denominator /= t;

return res;

}

int main() {

struct Fraction a, b;

printf("请输入第1个分数的分子和分母:\n");

scanf("%d%d", &a.numerator, &a.denominator);

printf("请输入第2个分数的分子和分母:\n");

scanf("%d%d", &b.numerator, &b.denominator);

struct Fraction c = add(a, b);

printf("两个分数的和为:%d/%d\n", c.numerator, c.denominator);

return 0;

}

4. 测试运行

我们来测试一下上述程序的运行结果:

$ gcc main.c -o main

$ ./main

请输入第1个分数的分子和分母:

1 2

请输入第2个分数的分子和分母:

1 3

两个分数的和为:5/6

5. 总结

在本篇文章中,我们简单介绍了分数的基本概念,并通过C语言编写程序实现了两个分数相加。需要注意的是,在实现分数相加时,我们需要先求出两个分数的公倍数,然后再将分子相加,在约分后得到最终结果。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签