c语言的简单问题 在线等答复

来源:百度知道 编辑:UC知道 时间:2024/05/11 01:39:04
#include<stdio.h>
void grsh(int,int);
void gbsh(int,int);
void main()
{
int a,b;int k,m;
printf("请输入两个整树:\n");
scanf("%d %d",&a,&b);
grsh(a,b);
gbsh(a,b);
}
void grsh(int,int)
{
int a,b,r;
r=a%b;
if(r==0)printf("最小公约数是%d\n",b);
else
{

{
a=b;b=r;r=a%b;
}while(r!=0);
printf("最小公约数是%d\n",b);
}
}
gbsh(int,int)
{
int a,b,c;
c=(a*b)/grsh(a,b);
printf("最小公bei数是%d\n",c);
}错那里呢?
我求的是最小公约数和最小公倍数啊!!!!能给在原代码的基础之上给改一改吗?

你的函数定义和声明中有很多错误,我把正确代码打给你吧.
#include<stdio.h>
int grsh(int,int);
void gbsh(int,int);
void main()
{
int a,b,c;
printf("请输入两个整数:\n");
scanf("%d %d",&a,&b);
c=grsh(a,b);
printf("最大公约数是%d\n",c);
gbsh(a,b);
}

int grsh(int a,int b)
{
int r;
r=a%b;

while(r!=0)
{
a=b;b=r;r=a%b;
}
return b;
}

void gbsh(int a,int b)
{
int c;
c=(a*b)/grsh(a,b);
printf("最小公倍数是%d\n",c);
}

在第一个函数中必须定义成有返回值的函数,因为你在第二个函数中调用了第一个函数,并用到第一个函数的返回值.

#include<stdio.h>
void grsh(int,int);
void gbsh(int,int);
void main()
{
int a,b;int k,m;
printf("请输入两个整数:\n");
scanf("%d %d",&a,&b);
grsh(a,b);
gbsh(a,b);
}
void grsh(int,int)
{
int a,b,r;
r=a%b;
if(r==0)printf(&quo