写一个求最小公倍数的函数的问题

要求通过最大公约数的方程来求,但方程嵌套进去不对。

#include<stdio.h>
int main() 
{
    int a,b;
    int lcm(int u,int v);
    int gcd(int u,int v);
    printf("输入两个正整数a,b:");
    scanf("%d %d",&a,&b);
    printf("两数的最小公倍数为:");
    lcm(a,b); 
}
int lcm(int u,int v)//求最小公倍数的函数 
{
    int gcd(int u,int v);
    int lcm;
    lcm=u*v/gcd(u,v);
    printf("%d",lcm);
}
int gcd(int u,int v)//求最大公约数的函数 
{
    int i,j,k;
    while(u%v!=0)
    {
        while(u<v)
        {
            i=u;
            u=v;
            v=i;
        }
        u=u%v;
    }
    printf("%d",v);
}

你这几个子函数写在main下面不行吧

问题一:应该是 if (u < v) ,不用写 while 的吧

#include <iostream>
#include <fstream>
 
using namespace std;
int gcd(int,int);
int main(int argc,char * argv[])
{
    int x,y;
    while(cin>>x>>y)
    {
        cout<<x/gcd(x,y)*y<<endl;
    }
    system("pause");
    return 0;
}
int gcd(int x,int y)
{
    while(x!=y)
    {
        if(x>y) x=x-y;
        else
            y=y-x;
    }
    return x;
}

 

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    /*
    	最大公约数,最小公倍数
    	
    	2,3 ,6,1
    	4,8   8,4
    */
    int n,m,p,t,i;
    printf("输入2个整数(逗号分隔):");
    scanf("%d,%d",&n,&m);
    //求最大公约数
    if(n<m)//确保n>m
    {
    	t=n;
    	n=m;
    	m=t;	
    }
    for(i=m;i>=1;i--)
    {
    	if(n%i==0 && m%i==0){
    		p=i;	
    		break;
    	}	
    }
    printf("%d和%d的最大公约数是%d\n",n,m,p);
    printf("%d和%d的最小公倍数是%d\n",n,m,m*n/p);
    
    
    
    
}

 

把 int lcm(int u,int v);放到int main()和#include <stdio.h>中间
    int gcd(int u,int v);

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

函数在使用前没有声明,main找不到函数,有两种方式修改:

一是:把int lcm(int u,int v)和int gcd(int u,int v)这两个函数的全部内容放在main()函数前面;

第二种方法是,在main()函数前面加上以下两句:

int lcm(int u,int v);
int gcd(int u,int v);

如有帮助,请采纳一下,谢谢。

这个程序的问题主要是子函数lcm里的lcm=u*v/gcd(u,v);有问题。因为我将lcm=u*v/gcd(u,v);写成lcm=u*v;时,主函数中lcm结果就正确了。但是子函数lcm里的lcm方程加入子函数gcd后,结果就不正确了。

 

因此想问问为什么嵌套函数会出现这个问题