分析下列程序,并显示结果:#include "iostream.h" class CTest {public: int x,y; CTest ( int a=1,int b=1 ) :x(a), y(b) { } int fun1() { int k; if ( x<y ) { k=x; x=y; y=k; } if( x%y ==0 ) return y; else { k=x%y; x=y; y=k; cout<<k<<endl; return fun1(); } } int fun2( ) { return ( x * y ) / fun1(); } }; void main() { CTest t1(35,15); cout<<t1.fun1()<<endl; CTest t2(12,32); cout<<t2.fun2()<<endl; }
时间: 2023-06-18 09:07:50 浏览: 80
#include_iostream.h_
4星 · 用户满意度95%
这是一个 C++ 程序,功能是定义了一个类 CTest,其中包含两个成员变量 x 和 y,以及两个成员函数 fun1 和 fun2。
在主函数 main 中,创建了两个 CTest 类的对象 t1 和 t2,并分别调用了 fun1 和 fun2 函数。
fun1 函数的作用是求 x 和 y 的最大公约数。如果 x < y,则交换 x 和 y。然后判断 x 和 y 是否互质,若是则返回 y,否则将 x 取模 y 的结果赋值给 k,然后将 y 赋值为 k,x 赋值为原来的 y,再递归调用 fun1 函数,直到 x 和 y 互质为止。在递归过程中,每次求出的 k 值都会输出到屏幕上。
fun2 函数的作用是求 x 和 y 的最小公倍数,即 x 和 y 的乘积除以它们的最大公约数。
程序运行结果为:
10
96
其中,第一行输出的是 t1.fun1() 的返回值,即 10;第二行输出的是 t2.fun2() 的返回值,即 96。
阅读全文