一道不会的c语言程序设计

毕设港湾 毕业设计 1

在主函数中输入两个自然数(如输入的是非自然数,则重新输入),调用子函数int fun (int, int), fun返回这两个数的最大公约数,在主函数中输出。

回复

共1条回复 我来回复
  • 源码工坊
    这个人很懒,什么都没有留下~
    评论
    #include <stdio.h>
    
    int fun2(int n1,int n2) //群举法
    {
        int s=(n1>n2)?n2:n1;
        int res=1;
        for(int i=1;i<=s;i++)
            if(n1%i==0 && n2%i==0)
                res=i;
    
        return res;
    }
    
    int fun(int n1,int n2)  //辗转相除法
    {   int x=n2;
        int mod=n1%x;
        while(mod)
        {
            n1=x;
            x=mod;
            mod=n1%x;
        }
    
        return x;
    }
    
    int main()
    {
        int n1,n2;
    
        while(1)
        {
            printf("输入2个自然数:\n");
            scanf("%d%d",&n1,&n2);
    
            if(n1>=0 && n2 >=0)
                break;
            printf("输入错误,请重新输入:\n");
        }
        int res=fun(n1,n2);
        printf("%d\n",res);
    
        return 0;
    }
    
    0条评论

发表回复

登录后才能评论