C 加分题目

任务详情
用C实现一个函数 int gcd(int a, int b) 求解两个整数的最大公约数,算法步骤是,用a ,b中的大值减去小值得到临时值c,然后再用c和a,b中的最小值进行计算,直到c和a,b中的最小值相等。一个例子参考附件。

提交代码和运行截图。

#include <stdio.h>
int Gcd(int a, int b);
main()
{
    int a, b, c;
    printf("Input a,b:\n");
    scanf("%d,%d", &a, &b);//1
    c = Gcd(a, b); //2
    if (c != -1)//1
    {
        printf("Gcd=%d\n", c);//1
    }
    else//1
    {
        printf("Input error!\n");//1
    }
}
int Gcd(int a, int b)//1
{
    int r;
    if (a <= 0 || b <= 0)//2
    {
        return -1;//1
    }
    do
    {
        r = a % b;//1
        a = b;//1
        b = r;//1
    }
    while (r != 0); //e2
    return  a;	//1
}

posted @ 2022-12-22 09:14  棉被王Excalibur  阅读(18)  评论(0编辑  收藏  举报