我写的 但是答案错误 求大神教#include<stdio.h>int gys(int x,int y);int gbs(int x,int y);int main(){ int a,b,j,i; scanf("%d%d",&a,&b); j = gys(a,b); i = gbs(a,b); printf("%d %d\n",j,i); return 0;}int gys(int x,int y){ int z; while(z!=0) { z = x % y; x = y; y = z; } return x;}int gbs(int x,int y){ int m,n; m = gys(x,y); n = x*y/m; return n;}
#include<stdio.h>
int gys(int x,int y);
int gbs(int x,int y);
int main()
{ int a,b,j,i;
scanf("%d%d",&a,&b);
j = gys(a,b);
i = gbs(a,b);
printf("%d %d\n",j,i);
return 0;}
int gys(int x,int y)
{ int z;
while(z!=0) {
z = x % y; x = y; y = z; }
return x;}
int gbs(int x,int y){
int m,n; m = gys(x,y); n = x*y/m;
return n;}
#include<stdio.h>//0和任意的一个数的最大公约数就是那个数(最小公倍数就是0)
int yue(int x,int y)
{
int m,t;
if(y>x)
{
t=x;//将x与y的值交换
x=y;
y=t;
}
while(y!=0)
{
m=x%y;
x=y;
y=m;
}
return x;
}
int bei(int x,int y,int p)
{
return(x*y/p);
}
int main()
{
int yue(int,int);
int bei(int,int,int);
int p,q,a,b;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
q=yue(a,b);
p=bei(a,b,q);//最小公倍数=两数的乘积除以它们的最大公约数
printf("最大公约数是:%d\n最小公倍数是:%d\n",q,p);
}
#include<iostream>
using namespace std;
int i;
int max(int a,int b)
{
//cout<<"max";
int s;s=i=2;
//cout<<s<<endl;
if(a>b)
{
i=b;
}
else
i=a;
do{
if(a%i==0&&b%i==0)
{
//cout<<"do里面的s!"<<s<<endl;
//cout<<"do里面的i!"<<i<<endl;
s=i;
break;
}
i--;
}while(i<a&&i<b);
//cout<<"end的s!"<<s<<endl;
//cout<<"end的i!"<<i<<endl;
return s;
}
int min(int a,int b)
{
//cout<<"min";
int s;s=1;i=2;
do{
if(i%a==0&&i%b==0)
{
//cout<<"do里面的s!"<<s<<endl;
//cout<<"do里面的i!"<<i<<endl;
s=i;break;
}
i++;
}while(i<=a*b);
//cout<<"end的s!"<<s<<endl;
//cout<<"end的i!"<<i<<endl;
return s;
}
int main()
{
int x,y,m,n;
cin>>x>>y;
m=max(x,y);n=min(x,y);
cout<<m<<""<<n;
}
运行示例:
追问没看懂啊!!
追答你写得太乱了:
实在没法看。因此直接把我的程序代码写出来了。
哪里看不懂?
我在补充那里 重新写了 应该不乱吧 你帮看下我的哪里错呗
追答还是非常乱,而且不全。
按能看到的说吧,看不到的,就假设你都写对了。
函数gys中,z没有初始化。 z=1,不为零即可。
#include <stdio.h>