《C语言及程序设计》实践参考——求最大公约数

来源:互联网 发布:怎么申请卖家淘宝达人 编辑:程序博客网 时间:2024/06/09 17:27

返回:贺老师课程教学链接  项目要求


【项目3-求最大公约数】
(1)输入两个数,并求出其最大公约数。请写出求最大公约数的函数

#include <stdio.h>//int gcd(int x,int y) //定义用于求两数的最大公约数的函数,函数只管求值,不管输出。输出由main完成{...}int main(){    int a,b,g;    scanf("%d %d", &a, &b);    g=gcd(a,b);    printf("最大公约数是:%d\n", g);    return 0;}
[参考解答]

#include <stdio.h>int gcd(int x,int y) //用辗转相除法,求两数的最大公约数{    int r;    while(y>0)    {        r=x%y;        x=y;        y=r;    }    return x;}int main(){    int a,b,g;    scanf("%d %d", &a, &b);    g=gcd(a,b);    printf("最大公约数是:%d\n", g);    return 0;}


(2)在上面程序基础上,增加函数gcds函数的声明和定义,实现求4数最大公约数的功能

int gcds(int x,int y,int z,int w)   //调用gcd()求四数的最大公约数{  }
提示:①既然gcd函数已经实现了求两数最大公约数的功能,gcds可以调用gcd分别求出两对的最大公约数,再求最大公约数的最大公约数;②修改main函数,以完成对新新定义的函数的测试。
[参考解答]
#include <stdio.h>//int gcd(int x,int y) //定义用于求两数的最大公约数的函数,函数只管求值,不管输出。输出由main完成int gcd(int x,int y) //用辗转相除法,求两数的最大公约数{    int r;    while(y>0)    {        r=x%y;        x=y;        y=r;    }    return x;}int gcds(int x,int y,int z,int w)//调用gcd()求四数的最大公约数{    int g1,g2,g;    g1=gcd(x,y);    g2=gcd(z,w);    g=gcd(g1,g2);    return g;}int main(){    int a,b,c,d;    scanf("%d %d %d %d", &a, &b, &c, &d);    printf("最大公约数是:%d\n", gcds(a,b,c,d));    return 0;}



0 0