问题及代码:
/*
Copyright(c)2018,CSDN学院行者-
All rights reserved.
文件名称:main.c
作者:乔帅
完成日期:2018年1月25日
版本号:v1.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 gcds(int x , int y , int z ,int w){
int a , b , s;
a = gcd(x,y);
b = gcd(z,w);
s = gcd(a,b);
return s;
}
int main()
{
int a,b,c,d,g;
scanf("%d %d %d %d", &a, &b, &c, &d);
g=gcds(a,b,c,d);
printf("最大公约数是:%d\n", g);
return 0;
}
运行结果:
知识点总结:
1.函数的初步应用
2.辗转相除法
学习心得:
多写代码,在实践中成长!我对辗转相除法用法不是特别的熟,还需要在理解理解。
这道题还用了,一个自定义函数中调用另一个自定义函数。