您的位置:首页 > 其它

实验或作业模版: 实验 6-1 最大公约数 最小公倍数

2013-10-27 17:17 281 查看
要求:每次作业或实验放到一个博客(随笔)提交,不能将题目分开提交

实验 6-1 题目:用辗转相除法求两个数的最大公约数 最小公倍数

///////////////////////////////////////////////////////
// 程序说明:用辗转相除法求两个数的最大公约数、最小公倍数
///////////////////////////////////////////////////////
#include <stdio.h>
int main() {
int m,n;
printf("请输入两个整数:\n");
scanf_s("%d,%d",&m,&n);
int mb = m;
int nb = n;

while(1) {
// 辗转相除法,用大数除以小数,然后用余数代替大数。整除时的除数就是最大公约数
if(n>m)    {
// 保证用大数除以小数,即保证m>n
int tem = m; m = n; n = tem;
}
// 整除时的除数就是最大公约数
int rem= m%n;
if (0 == rem) {
printf("最大公约数:%d 最小公倍数:%d \n",n,(mb*nb)/n);
break;
}
else
m = rem;
}
return 0;
}


[b]运行效果[/b]





-----------------------------------题目分割线---------------------------------------

实验 6-2 题目:计算两点间的距离
题目描述: 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。
输入要求:输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。
输出要求:对于每组输入数据,输出一行,结果保留两位小数。

Sample Input
0 0 0 1
0 1 1 0
2 4 4 8
Sample Output
1.00
1.41
4.47
提示:本题用到库函数:

#include <math.h>
#include <stdio.h>

int main(void)
{
double x[2], y[2];  // 定义数组存放坐标
int i;
for(i=0;i<3;i++)
{
scanf("%lf%lf%lf%lf", x, y, x+1, y+1);
// 计算距离
printf("%.2f", sqrt((x[1]-x[0])*(x[1]-x[0]) + (y[1]-y[0])*(y[1]-y[0])));
if (i<=2) printf("\n");
}
return 0;
}


运行效果





-----------------------------------题目分割线---------------------------------------

问题和心得

1. 网上有其他的解决方法更加简练,但明显看不懂!
2. 算法搞清楚了,还是比较容易,这个算法谁发明的,人才呀!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: