c语言编程紧急求助

来源:百度知道 编辑:UC知道 时间:2024/09/24 21:27:40
用全局变量的方法,分别用两个函数求最大公约数和最小公倍数,但其值不由函数带回。将最大公约数和最小公倍数都设为全局变量,在主函数中输出他们的值。

这个要求真古怪。

#include <stdio.h>

int GCD, LCM;

void gcd(int a, int b)
{
register int x, y, r;
for (x = a, y = b;r = x % y;y = r) x = y;
GCD = y;
}

void lcm(int a, int b)
{
register int x, y, r;
for (x = a, y = b;r = x % y;y = r) x = y;
LCM = a / y * b;
}

int main()
{
int a, b;
void gcd(int, int);
void lcm(int, int);

scanf("%d %d", &a, &b);
gcd(a, b);
printf("GCD(%d,%d)=%d\n", a, b, GCD);
lcm(a, b);
printf("LCM(%d,%d)=%d\n", a, b, LCM);

return 0;
}

#include<stdio.h>

int p=0,q=0; /*你要求的全局变量*/

int Max(int a,int b) /*求最大公约数函数*/
{
int i=0;
for(i=1;i<=(a<b)?a:b;i++)
{
if(a%i==0&&b%i==0)
{
p=i;