C 第5题、第6题怎么写?

生活问答  / 倒序浏览   © 著作权归作者本人所有

#楼主# 2020-9-16 12:11

跳转到指定楼层
57晶币
#include <iostream>
using namespace std;
int main()
{
        int x=99,y=88;
        int gcd=0,lcm=0;
        int m=x,n=y;
        while (m!=n) {
                if (m>n)
                        m=m-n;
                else
                        n=n-m;               
        }
        gcd=m;
        lcm=x*y/gcd;
        cout<<"GCD("<<x<<","<<y<<") = "<<gcd<<endl;
        cout<<"LCM("<<x<<","<<y<<") = "<<lcm<<endl;
}
1.        请写出上面这段代码的运行结果。
GCD(99,88) = 11
LCM(99,88) = 792
2.        将代码中的x修改为9,y修改为8之后,运行结果是什么?
GCD(9,8) = 1
LCM(9,8) = 72
3.        将代码中的x修改为9,y修改为3之后,运行结果是什么?
GCD(9,3) = 3
LCM(9,3) = 9
4.        上面这段代码的功能是什么?
答:求最小公倍数和最大公约数。
5.        上面这段代码是否存在什么问题?
6.        请将上述代码中计算GCD和LCM的部分分别整理为独立的函数。(注意:单独计算LCM时,有可能提供了GCD,也可能没有提供,所以需要用到函数重载。)

5. 上面这段代码是否存在什么问题?
答:main函数返回值为int,但函数体内并未返回任何值
6. 请将上述代码中计算GCD和LCM的部分分别整理为独立的函数。(注意:单独计算LCM时,有可能提供了GCD,也可能没有提供,所以需要用到函数重载。)
答:
int GCD(int x, int y) {
int m=x,n=y;
while (m!=n) {
if (m>n)
m=m-n;
else
n=n-m;
}
return m;
}
int LCM(int x, int y) {
return x * y / GCD(x, y);
}

热帖推荐




上一篇:广东黄蜡石生产之乡大量黄蜡石景观石原石
下一篇:济南宝格丽项链回收,高价回收二手宝格丽项链
回复

使用道具

成为第一个回答人

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则