C语言如何用指针求两个正整数的最大公约数和最小公倍数呢?

如题所述

#include<stdio.h>

int main()

{

int a,b,t,r,x;

int *p,*q;//定义指针变量

p=&a;//指针p指向a

q=&b;//指针q指向b

scanf("%d%d",p,q);

if(*p<*q)//保证第一个数大于第二个数 

{

t=*p;

*p=*q;

*q=t;

}

r=(*p)*(*q);

x=*p%*q;

while(x)//辗转相除法求最大公约数; 

{

*p=*q;

*q=x;

x=*p%*q;

}

//最小公倍数等于(两数乘积除以最大公约数) 

printf("最大公约数:%d 最小公倍数:%d",*q,r/(*q));

}

温馨提示:答案为网友推荐,仅供参考
相似回答