C语言求最大公约数和最小公倍数
我错在哪,请大神指出
#include<stdio.h>
int main()
{
int m, n, a, b, c, d;
printf("请输入m,n:\n");
scanf("%d%d\n", &m, &n);
if (m > n)
{
a = m;
b = n;
}
else
{
a = n;
b = m;
}
while(c!=0)
{
c = a%b;
a = b;
b = c;
}
d = m * n;
printf("最大公约数为%d\n", b);
printf("最小公倍数为%d\n",d);
return 0;
}
把scanf("%d%d\n", &m, &n);中的\n删除。
把if...else那些无用的语句都删除,无用的a、b变量也删除——因为实在没用。
把d=m*n;一句提前到while前面。
把while(c!=0)改为while(m!=0)(或while(n!=0)都行,但后面写法就不同)——c还没赋值就拿来判断是大忌。
while体内的a、b变量都换成相应的n、m。
把 printf("最大公约数为%d\n", b);改为printf("最大公约数为%d\n", n);。
把printf("最小公倍数为%d\n",d);改为printf("最小公倍数为%d\n",d/n);。
整个改后代码如下:
哪个地方错了,求大神指教。
本回答被提问者采纳我在while(c!=0)前添加c=a%b;
可还是运行不出来结果,求大神告诉我应该怎样改
这是我改过的
C语言问题,求最小公倍数和最大公约数
bcs=cs;ys=bcs%cs;根据这两句,bcs肯定等于cs,所以ys等于0,循环体错了。假设给出两数是x,y(x>y),最大公约数是a,最小公倍数是b。b=x*y;while(m!=0){ m=x%y;x=y;y=m;} a=x;b=b\/a;
C语言中 用函数调用求最大公约数和最小公倍数
int f(int m,int n){ int c;while(n > 0){ c=m%n;m = n;n = c;} return (m);} \/ \/\/求最大公约数和最小公倍数 \/\/递归求最小公倍数 int f(int m,int n){ return (n >0)? f(m,m%n):m;} \/ int main(void){ int m,n,a;int f(int m,int n);printf("ple...
C语言求最大公约数和最小公倍数代码运行出错
b=r1q2+r2 如果余数r2=0,那么r1就是所求的最大公约数3。因为如果b=r1q2+r2变成了b=r1q2,那么b1r1的公约数就一定是a1b的公约数。这是因为一个数能同时除尽b和r1,那么由a=b * q1+r1,就一定能整除a,从而也是a1b的公约数。反过来,如果一个数d,能同时整除a1b,那么由1)式...
...求它们的最大公约数和最小公倍数,如果m或n小于等于零则输出ERROR...
else printf("最大公约数:%d\\n最小公倍数:%d\\n",gcd(a,b),lcm(a,b)); return 0;}
c语言函数调用求最大公约数和最小公倍数
include<stdio.h> int a;int _Y(int x,int y);int main(){ int a,b,c,d;printf(“请输入数字:”);scanf("%d,%d",&c,&d);\/\/此处注意在输出的时候数字之间要打都好,不然输出结果错误 b=_Y(c,d);a=c*d\/b;printf(“最大公约数为:%d\\n”,b);printf(“最小公倍数为:%d\\n...
C语言中求最大公约数和最小公倍数怎么求
最大公约数:include <stdio.h> int g(int m,int n){ while(m!=n){ if(m>n)m=m-n;else n=n-m;} return m;} int main(){ int m,n,a,i;for(i=0;i<50;i++){ scanf("%d%d",&m,&n);a=g(m,n);printf("%d\\n",a);} fflush(stdin);getchar();} 最小公倍数 a...
如何用c语言解决求两数的最大公约数和最小公倍数?
思路如下:1 对所有可能的数进行遍历。2 对每个数,求得另外一个数。3 计算两数的最大公约数和最小公倍数,判断是否可以整除且商为120.4 如果符合,则为该数。否则继续。代码如下:include <stdio.h>int main(){ int n,m,gcd, lcd; for(n = 1; n < 334; n ++)\/\/对可能的n遍...
C语言:求最大公约数和最小公倍数
include <stdio.h> int main(){ int m, n;int m_cup, n_cup, res; \/*被除数, 除数, 余数*\/ printf("Enter two integer:\\n");scanf("%d %d", &m, &n);if (m > 0 && n >0){ m_cup = m;n_cup = n;res = m_cup % n_cup;while (res != 0){ m_cup = n_cup...
c语言最大公约数和最小公倍数
int m,int n); printf("请输入两个整数:\\n"); scanf("%d %d",&i,&j); if (i<j) {l=i; i=j; j=l;} gy=yue(i,j); gb=bei(i,j); printf("最大公约数:%d\\n",gy); printf("最小公倍数:%d\\n",gb); return 0;}int yue(int m,int n){ int l; l=m%n;...
[C语言]编程:输入两个正整数,求其最大公约数和最小公倍数
include<stdio.h> int main(){ int m, n;int gcd, lcm;scanf("%d%d", &m, &n);gcd = m < n ? m : n;lcm = m > n ? m : n;do { if(m % gcd == 0 && n%gcd==0)break;gcd--;}while(1);do { if(lcm % m == 0 && lcm % n==0)break;lcm++;}while(1)...