(4) 编写一个函数fun,然后设计主函数调用函数fun。函数fun的功能是:求出两个非零正整数的最大公约数(考虑递归和非递归两种方法,任选一种实现),并作为函数值返回。再设计一个函数,函数的功能是计算两个非零正整数的最小公倍数。
时间: 2023-03-27 18:03:31 浏览: 117
函数fun的实现如下:
非递归方法:
```c
int fun(int a, int b) {
int temp;
while (b != ) {
temp = a % b;
a = b;
b = temp;
}
return a;
}
```
递归方法:
```c
int fun(int a, int b) {
if (b == ) {
return a;
} else {
return fun(b, a % b);
}
}
```
计算最小公倍数的函数实现如下:
```c
int lcm(int a, int b) {
return a * b / fun(a, b);
}
```
主函数调用函数fun和lcm的实现如下:
```c
#include <stdio.h>
int fun(int a, int b);
int lcm(int a, int b);
int main() {
int a, b;
printf("请输入两个非零正整数:");
scanf("%d %d", &a, &b);
printf("它们的最大公约数是:%d\n", fun(a, b));
printf("它们的最小公倍数是:%d\n", lcm(a, b));
return ;
}
```
运行结果:
```
请输入两个非零正整数:12 18
它们的最大公约数是:6
它们的最小公倍数是:36
```
阅读全文