您的位置首页百科知识

C语言“最大公约数和最小公倍数”代码讲解

C语言“最大公约数和最小公倍数”代码讲解

的有关信息介绍如下:

C语言“最大公约数和最小公倍数”代码讲解

题目:输入两个正整数m和n,求最大公约数和最小公倍数。

首先打开CodeBlocks,创建一个新项目。

项目语言,选择“c”, 我们将项目名称命名为“MaxAndMin”,

然后下一步,“finish”。

创建好项目后,我们打开 “main.c”文件。

在这里我们先分析一下题目。

输入两个正整数m和n,求最大公约数和最小公倍数

此程序要求 输入两个数,处理后,输出两个结果。这里我们继续用到 自定义函数 分别来完成最大公约数和最小公倍数。

首先是main函数部分,我们完成输入功能

其中m和n是输入的两个数,num是将来存储的最大公约数。

num的值是由后面我们定义的函数,来赋值的。

这里为了能更加严谨,我们要强制用户输入正确的数for(;;)表示一个死循环 同样使用while(true)也可达到死循环效果。

在循环中要求用户多次输入,直到用户输入合法的数值

接下来,当用户输入合法之后。

我们就要写else的情况了。

但在写之前,我们先要将计算最大公约数和最小公倍数的函数定义出来(详细见图)

首先是最大公约数

其中r用来存储余数。

这里我们简单说一下算法过程。 首先我们将m和n求余数(谁大谁小不影响)。

当得到的余数r不是0,就表示 m和n之间不是倍数关系。那么我们将m的值改为n,n中从存取r 再次执行r=m%n 。意思就是,反复的用余数取模余数,直到0位置。就是n中存的就为最大公因数了。

最后是,最小公倍数函数,

很简单,利用公式(m*n)/最大公约数,很快就能得到结果。

这就免除了麻烦的计算过程

最后,回到main中,我们将代码补全。

在else中 分别调用两个函数。

这样代码就完成了。

以下为main函数中的代码

接下来运行,

我们输入 6,3 其中3就是最大公因数,6是最小公倍数。

到这里就结束了。

但其实代码还存在问题。当我们输入的数没有公因数时,就出bug。

这个自己可以开动脑筋去解决。