C++期中作业

来源:百度知道 编辑:UC知道 时间:2024/05/05 03:11:45
四、根据题目要求编写程序(共4小题40分)。
1、在主函数中由键盘输入两个正整数m和n,写两个函数分别求取它们的最大公约数和最小公倍数,在主函数中调用这两个函数,并输出结果。(10分)
答:

2、定义正整数常量M作为方阵的维数,写transpose函数实现该方阵的矩阵转置。在主函数中定义二维数组a[M][M],并给每个数组元素a[i][j]赋值,而后调用transpose函数进行转置,最后将转置后数组的每个元素输出。(10分)
答:

3、有一个长方体,其长、宽、高分别是10、20、30,进行基于类和对象的编程,求它的体积。要求定义一个长方体Box类,有长Length、宽Width、高Height作为私有数据成员,并至少有带参数的构造函数和计算体积的函数Volume作为公有成员函数。(10分)
答:

4、有直角坐标系内的两个点,其坐标分别是(1, 2)和(3, 4),进行基于类和对象的编程,求这两点组成的线段的长度。要求定义一个点Point类,有坐标X和Y作为私有数据成员,并至少有带参数的构造函数和拷贝构造函数作为公有成员函数;还要求定义一个线段Line类,有Point类的两个对象P1和P2,以及线段长度Length,作为私有数据成员,并至少有带参数的构造函数和计算两点之间线段长度的函数GetLen作为公有成员函数。(10分)
答:

我这程序C语言写的,把输入输出改了就行了,自己看着改哈。这是你的第一题。

//ex5_1求两个数的最小公倍数和最大公约数

#include "stdio.h"
#include "conio.h"

main()
{

int m,n,i;
scanf("%d%d",&m,&n);
i=(m>n)?m:n;
while (1)
{
if(i%m==0 && i%n==0)
{ printf("b is %d\n",i); //意思是最小公倍数是i
break;
}
else if (i%m==0 && i%n==0)
{i++;
continue;
}

}

for(i=2;i<(m>n)?m:n+1;)
{
if(m%i!=0 || n%i!=0)
{i++;
continue;
}
else{
if (i>(m>n)?m:n+1)
{printf("no y\n");
break;}
else
printf("y is %d\n",i); //意思是最大公约数是i
break;

}
}

}

给个2000分估计有人会。