编程实现功能:求2个数的最大公约数和最小公倍数.要求用函数实现,

并且将主函数和这两个函数分别存入3个文件a.cpp,b.cpp,c.cpp中.然后用文件包含的方法实现多文件编译链接.

第1个回答  推荐于2016-01-23
a.cpp

# include<stdio.h>
# include<stdlib.h>
# include"hand.h"

int main(void)
{
int m,n;
int sum,total;

printf("请输入两个整数:\n");
scanf("%d%d",&m,&n);

printf("这两个数的最大公约数为:");
GCD(n,m,&sum);
printf("%d\n",sum);

printf("这两个数的最小公倍数为:");
LCM(n,m,sum,&total);
printf("%d\n",total);

system("pause");
return 0;
}

b.cpp

# include<stdio.h>
# include"hand.h"

void GCD(int n,int m,int *sum)
{
int t=0;

if(n<m)
{
t = m;
m = n;
n = t;
}

//辗转相除,直到除数为零为止
while(m!=0)
{
t = n%m;
n = m;
m = t;
}

*sum = n;
}

c.cpp

# include<stdio.h>
# include"hand.h"

void LCM(int n, int m, int sum, int *total)
{
*total = n*m/sum;
}

hand.h

#ifndef HAND_H
#define HAND_H

/*
函数名:求最大公约数

参数:n 第一个整数
m 第二个整数
sum 两个整数的最大公约数

返回值:无

*/
void GCD(int n,int m,int *sum);

/*
函数名:求最小公倍数

参数:n 第一个整数
m 第二个整数
sum 两个整数的最大公约数
total 两个整数的最小公倍数

返回值:无

*/
void LCM(int n,int m,int sum,int *total);

#endif本回答被提问者和网友采纳
相似回答