编写一个函数,求两个整数的最大公约数,在主函数中输入两个整数,调用此函数进行计算并输出结果。

高手帮帮忙,谢谢啦请使用C语言,拜拜忙... 高手帮帮忙,谢谢啦
请使用C语言,拜拜忙
展开
 我来答
iiiiiiiipl
2019-06-15 · TA获得超过9923个赞
知道答主
回答量:68
采纳率:66%
帮助的人:3.9万
展开全部

#include<stdio.h>

int gcd(int a, int b)           //lgcd最大公因数 

{

int i = 0, g = 0;

int m = 0;

m = a < b? a : b;

for(i = 1; i < m; i++)

{

if(a%i == 0 && b%i == 0)

{

g = i;

}

}

return g;

}

int main()

{

int a = 0, b = 0;

int c = 0;

printf("Input number a, b:");

scanf("%d%d",&a,&b);

c = gcd(a, b);

printf("Output gcd = %d",c);

return 0;

}

扩展资料:

c语言需要说明的是:

1.一个C语言源程序可以由一个或多个源文件组成; 

2.每个源文件可由一个或多个函数组成;

3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口;

4.源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面;

5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。结构体、联合体、枚举型的声明的“}”后要加“ ;”;

6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

参考资料:

百度百科-c语言

1逝水_无痕1
2011-06-21 · TA获得超过130个赞
知道答主
回答量:31
采纳率:0%
帮助的人:30.1万
展开全部
楼主你好,这是源程序,是用辗转相除法写的
#include <stdio.h>
int max(int p_a,int p_b)
{
if(p_b==0)
return p_a;
else
return max(p_b,p_a%p_b);
}
void main()
{
int a,b;
printf("Input two numbers:\n");
scanf("%d %d",&a,&b);
if(b<a)
printf("最大公约数为:%d\n",max(a,b));
else
printf("最大公约数为:%d\n",max(b,a));
}
已经调试过了,没有问题:
Input two numbers:
2 8
最大公约数为:2
Input two numbers:
3 9
最大公约数为:3
逝水无痕真诚为您解答!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ce8d01c
2011-06-21 · 知道合伙人教育行家
百度网友ce8d01c
知道合伙人教育行家
采纳数:20071 获赞数:87097
喜欢数学

向TA提问 私信TA
展开全部
给个思路,设两数是a、b
max(a,b)/min(a,b)是整数,则最大公约数是min(a,b)
否则
i=√min(a,b) to 1
min(a,b)/√min(a,b)整数,max(a,b)/√min(a,b)整数,结束
i--
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ILLUSION0110
2020-04-28
知道答主
回答量:6
采纳率:0%
帮助的人:3597
展开全部
#include <stdio.h>
int number(int x, int y)
{
int s,i,j;
if(x<y)
{
for(i=x;i>0;i--)
{
if(x%i==0 && y%i==0)
{
s=i;
break;
}
}
}
else
{
for(i=y;i>0;i--)
{
if(x%i==0 && y%i==0)
{s=i;
break;}
}
}
return(s);
}
int main()
{
int x,y,c;
scanf("%d %d",&x,&y);
c=number(x,y);
printf("%d",c);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
成凝57
2017-12-02
知道答主
回答量:6
采纳率:0%
帮助的人:3524
引用1逝水_无痕1的回答:
楼主你好,这是源程序,是用辗转相除法写的
#include <stdio.h>
int max(int p_a,int p_b)
{
if(p_b==0)
return p_a;
else
return max(p_b,p_a%p_b);
}
void main()
{
int a,b;
printf("Input two numbers:\n");
scanf("%d %d",&a,&b);
if(b<a)
printf("最大公约数为:%d\n",max(a,b));
else
printf("最大公约数为:%d\n",max(b,a));
}
已经调试过了,没有问题:
Input two numbers:
2 8
最大公约数为:2
Input two numbers:
3 9
最大公约数为:3
逝水无痕真诚为您解答!
展开全部
如果输入8和19呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式