c语言题目。。关于用函数求最大公约数最小公倍数和最小公倍数的。谢谢解答

用C语言来编写程序求三个数的最小公倍数填空,_百度知道
用C语言来编写程序求三个数的最小公倍数填空,
&#inlude&stdio.h&fun(int a,int b,int c){ if(_____) return(a);&&&& else if(_______) return(b);&&&& else& return(c);}main(){&&&&& int a,b,c,i=1,j,k;&&&&...
我有更好的答案
不是自夸,我也算一高手。看懂这笨算法就几秒的事情。很简单,程序如下#include&stdio.h& /*因为是库,最好将双引号改成尖括号*/int fun(int a,int b,int c){/*求3个参数中的最大值,前面最好加返回类型int*/ if(a&=b&&a&=c) return(a); else if(b&=a&&b&=c) return(b);
return(c);}void main(){/*加一个void,否则警告。不同编译器有不同处理*/ int a,b,c,i=1,j,k; scanf(&%d%d%d&,&a,&b,&c); k=fun(a,b,c);/*最大值是k*/ while(1){
if(j%a==0&&j%b==0&&j%c==0)/*j能被3个数整除*/
i++; } printf(&%d&,j);/*j是最小公倍数*/ }
采纳率:39%
int a,b,min,max,i,j;
scanf(&%d%d&,&a,&b);
for(max=a;i&=1;i--) {
if(a%i==0&&b%i==0) {
printf(&最大公约数是%d\n&,i);
for(j=;j++) {
if(j%a==0&&j%b==0) {
printf(&最小公倍数为%d\n&,j);
1、a&=b&&a&=c2、b&=a&&b&=c3、j%a==0&&j%b==0&j%c==0
为您推荐:
其他类似问题
您可能关注的内容
最小公倍数的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C语言 编写函数,求最大公约数和最小公倍数,求大神解答_百度知道
C语言 编写函数,求最大公约数和最小公倍数,求大神解答
#includevoid main(){long int a,b;extern
emax();extern
emin();scanf(&%d%d&,&a,&b);printf(&%d,%d\n&,a,b);printf(&最大公约数为%d,最小公倍数为%d&,emax(a,b),emin(a,b));} int emax(int i,int j){int t,u;if (i & j) {t=i;i=j;j=t;};do {u=i%j;i=j;j=u...
#include &stdio.h&void main(){long int a,b;extern
emax();extern
emin();scanf(&%d%d&,&a,&b);printf(&%d,%d\n&,a,b);printf(&最大公约数为%d,最小公倍数为%d&,emax(a,b),emin(a,b));} int emax(int i,int j){int t,u;if (i & j) {t=i;i=j;j=t;};do {u=i%j;i=j;j=u;}while (u&=0);return(i);}int emin(int i,int j){int t,z,v;extern emax();if (i & j) {t=i;i=j;j=t;};v=emax(i,j);z=i*j/v;return(z);}这个排版好一点
我有更好的答案
//完美最小公倍数和公约数不过不是用函数写的#include &stdio.h&int main(){
int e,a,b,v;
scanf(&%d %d&,&a,&b);
while(v!=0)
printf(&%d\n&,e/a);
while(v!=0)
printf(&%d\n&,e/b);
return 0;}
采纳率:80%
为您推荐:
其他类似问题
最大公约数的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。最大公约数和最小公倍数,要用全局变量。求助高人解答【c语言吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:583,163贴子:
最大公约数和最小公倍数,要用全局变量。求助高人解答收藏
输入两个正整数m和n, 求其最大公约数和最小公倍数. &1& 用辗转相除法求最大公约数 算法描述: m对n求余为a, 若a不等于0 则 m &- n, n &- a, 继续求余 否则 n 为最大公约数 &2& 最小公倍数 = 两个数的积 / 最大公约数 #include int main() { int m, int m_cup, n_cup, /*被除数, 除数, 余数*/ printf("Enter two integer:\n"); scanf("%d %d", &m, &n); if (m & 0 && n &0) { m_cup = n_cup = res = m_cup % n_ while (res != 0) { m_cup = n_ n_cup = res = m_cup % n_ } printf("Greatest common divisor: %d\n", n_cup); printf("Lease common multiple : %d\n", m * n / n_cup); } else printf("Error!\n"); return 0; } ★ 关于辗转相除法, 搜了一下, 在我国古代的《九章算术》中就有记载,现摘录如下: 约分术曰:“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。” 其中所说的“等数”,就是最大公约数。求“等数”的办法是“更相减损”法,实际上就是辗转相除法。 辗转相除法求最大公约数,是一种比较好的方法,比较快。 对于5两个数,你能迅速地求出它们的最大公约数吗?一般来说你会找一找公共的使因子,这题可麻烦了,不好找,质因子大。 现在教你用辗转相除法来求最大公约数。 先用较大的75569除以52317,得商1,余数23252,再以52317除以23252,得商2,余数是5813,再用23252做被除数,5813做除数,正好除尽得商数4。这样5813就是7的最大公约数。你要是用分解使因数的办法,肯定找不到。 那么,这辗转相除法为什么能得到最大公约数呢?下面我就给大伙谈谈。 比如说有要求a、b两个整数的最大公约数,a>b,那么我们先用a除以b,得到商8,余数r1:a÷b=q1…r1我们当然也可以把上面这个式子改写成乘法式:a=bq1+r1------l) 如果r1=0,那么b就是a、b的最大公约数3。要是r1≠0,就继续除,用b除以r1,我们也可以有和上面一样的式子: b=r1q2+r2-------2) 如果余数r2=0,那么r1就是所求的最大公约数3。为什么呢?因为如果2)式变成了b=r1q2,那么b1r1的公约数就一定是a1b的公约数。这是因为一个数能同时除尽b和r1,那么由l)式,就一定能整除a,从而也是a1b的公约数。 反过来,如果一个数d,能同时整除a1b,那么由1)式,也一定能整除r1,从而也有d是b1r1的公约数。 这样,a和b的公约数与b和r1的公约数完全一样,那么这两对的最大公约数也一定相同。那b1r1的最大公约数,在r1=0时,不就是r1吗?所以a和b的最大公约数也是r1了。 有人会说,那r2不等于0怎么办?那当然是继续往下做,用r1除以r2,……直到余数为零为止
回复:2楼多谢帮助,但题目要求是要用全局变量。。。。。。。
回复:3楼你改下不就全局变量了!!!
回复:4楼我没搞懂什么是全局变量,怎么定义全局变量。。。。
形参变量只在被调用期间才分配内存单元,调用结束立即释放。这一点表明形参变量只有在函数内才是有效的,离开该函数就不能再使用了。这种变量有效性的范围称变量的作用域。不仅对于形参变量,C语言中所有的量都有自己的作用域。变量说明的方式不同,其作用域也不同。C语言中的变量,按作用域范围可分为两种,即局部变量和全局变量。全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。例如:&&&
int a,b;&&&&&&&&&
/*外部变量*/&&&
void f1()&&&&&&&&
/*函数f1*/&&&
float x,y;&&&&&&&&
/*外部变量*/&&&
int fz()&&&&&&&&&
/*函数fz*/&&&
main()&&&&&&&&&&
/*主函数*/&&&
}从上例可以看出a、b、x、y 都是在函数外部定义的外部变量,都是全局变量。但x,y 定义在函数f1之后,而在f1内又无对x,y的说明,所以它们在f1内无效。a,b定义在源程序最前面,因此在f1,f2及main内不加说明也可使用。
回复:6楼十分感谢,我现在慢慢消化吧。。。。。。。。
废话那么多干嘛,简单的说就是把你的int放在最外层?你滴大大明白?
回复:8楼明白了。。。。。。。。。
全局变量是任何地方 或者 函数作用域(c语言有这说法么?) 整个源文件都是可以用到的。又叫超级全局变量而局部变量是一个函数自身的,外部访问不到的。你多搞点java就明白了,什么是私有 面向对象
登录百度帐号c语言 求最大公约数和最小公倍数的算法_百度知道
c语言 求最大公约数和最小公倍数的算法
两个数最大公约数和最小公倍数的算法
我有更好的答案
#include&stdio.h&void main(){
int a,b,num1,num2,
printf(&please input two numbers:\n&);
scanf(&%d%d&,&num1,&num2);
if(num1&num2)
temp=num1;
num1=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
printf(&the gcd is: %d\n&,a);
printf(&the lcm is: %d\n&,num1*num2/a);}
采纳率:31%
为您推荐:
其他类似问题
您可能关注的内容
最大公约数的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。谁能用c语言帮我写一个题目为“任意输入两个正整数求其最大公约数和最小公倍数”的程序??谢谢了_百度知道
谁能用c语言帮我写一个题目为“任意输入两个正整数求其最大公约数和最小公倍数”的程序??谢谢了
我有更好的答案
#include &stdio.h&int main(){ int a,b,c; scanf(&%d %d&,&a,&b); c=gcd(a,b); printf(&最大公约数是:%d&,c); printf(&最小公倍数是:%d&,a*b/c); return 0;}int gcd(int a,int b){ return a%b?b:gcd(b,a%b);}
上面给的那段程序有点问题求公约数的函数应该是 int gcd(int a,int b){return a%b?gcd(b,a%b):b;}
你编写的程序有出现死循环。你应多参考一下书上写了什么?是否有写错了别字?
为您推荐:
其他类似问题
最大公约数的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 c语言自定义函数题目 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信