永发信息网

c语言求解 用辗转相除法计算并输出a、b的最大公约数。假设a, b是键盘输入的正整数,且在输入时能

答案:1  悬赏:80  手机版
解决时间 2021-11-10 01:39
  • 提问者网友:泪痣哥哥
  • 2021-11-09 19:59
c语言求解 用辗转相除法计算并输出a、b的最大公约数。假设a, b是键盘输入的正整数,且在输入时能
最佳答案
  • 五星知识达人网友:持酒劝斜阳
  • 2021-11-09 21:21
你是要代码吗?这是我写的,加了注释
#include
void main()
{
char o;
int a,b;
int y(int,int);
int c(int,int);
printf("请输入两个数字!");
scanf("%d,%d",&a,&b);
printf("最大公约数是:%d\n最大公倍数是:%d\n",y(a,b),c(a,b));
do
{
o=getchar();
}while(o!='a');
}
int y(int a,int b)
{
int s;
if(a {
s=b;
b=a;
a=s;
}
while(a%b!=0) //辗转相除的过程
{
s=a%b;
a=b;
b=s;
}
return b;
}
int c(int a,int b) //这个是求最大公倍数,最大公倍数等于两数乘积除以最小公约数
{
int s;
int y(int,int);
s=a*b/y(a,b);
return s;
}追问#include
main()
{
int a,b,i;
printf("please input two number:");
scanf("%d,%d",&a,&b);
for(i=1;a!=0;a=b%a,b=i)
i=a;
printf("这两个数的最大公约数是%d",i);
}这是我写的,我就是不明白最后那个范围干嘛的追答没仔细看你的要求,抱歉,你是想问为什么要那个范围还是怎么实现那个条件?追问为什么要那个条件,只是个假设不要管吗?追答个人猜测这只是让你注意在接受输入时排除一些不合理的输入,又或者降低地点难度(免去排序的步骤,免去大数值计算问题),应该是个假设,写代码时符合它的条件就好了,没什么特殊含义
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯