16、编写一个函数,求两个整数的最大公约数,用 主函数调用这个函数并输出结果,两个整数由键盘 输入。(提示:用辗转相除法求最大公约数)
辗转相除法:
例 : 987 524
1.每次用较大数 除以 较小数,余数为0,则此时的小数为最大公约数。
2.否则,较小数转为较大数,余数转为较小数,循环 1 步骤。
#include <stdio.h>
2
3 void Cal_Gcb(int num1_int,int num2_int);
4
5 int main(void)
6 {
7 int number1,number2;
8
9 printf("请输入两个整型数:");
10 scanf("%d %d",&number1,&number2);
11
12 Cal_Gcb(number1,number2);
13
14 return 0;
15 }
16
17 void Cal_Gcb(int num1_int,int num2_int)
18 {
19 int temp_num;
20
21 if((num1_int==0)||(num2_int == 0))
22 {
23 printf("请输入不为0的整型数!\n");
24 }//为0,则此函数进不去下面循环
25
26 while(num2_int!=0)
27 {
28 if(num1_int >= num2_int)
29 {
30 temp_num = num2_int;
31 num2_int = num1_int%num2_int;//num1_int:大数
32 num1_int = temp_num;
33 if(num2_int == 0)
34 {
35 printf("最大公约数为:%d\n",num1_int);
36 }
37 }
38 else//num1_int<num2_int
39 {
40 temp_num = num1_int;
41 num1_int = num2_int;
42 num2_int = temp_num;
43 }
44 }
45 }