Last active
January 1, 2016 14:59
-
-
Save novnan/8161745 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* 求两个整数的最大公约数的算法; | |
对于两个整数integer1和integer2, 算法如下: | |
1 如果integer1/integer2的余数为0,那么integer2就是最大公约数 | |
2 如果余数不为0,那么将integer2赋值给integer1,余数赋值给integer2 | |
3 从步骤1重复执行 | |
编程一个程序来实现这个算法,它使用两个整型参数,并返回最大公约数。 */ | |
#include <stdio.h> | |
int maxcom(int a, int b); | |
void main () | |
{ | |
// 这里声明的integer1和integer2仅在main函数里有效 | |
int integer1; | |
int integer2; | |
printf("请输入两个整数:"); | |
scanf("%d%d", &integer1, &integer2); | |
int t = maxcom(integer1, integer2); | |
printf("%d\n", t); | |
} | |
int maxcom(int a, int b) | |
{ | |
// 这里应该使用a和b来代替 | |
// 或者声明一个局部变量integer1 = a; integer2 = b; | |
int integer1 = a; //为什么要声明 | |
int integer2 = b; | |
int t = integer1 % integer2; | |
if(t == 0) { | |
return integer2; | |
} else { | |
integer1 = integer2; | |
integer2 = t; // 不用return ? | |
// 肯定要return 一个值 | |
// 根据算法,这里必需重复计算(递归调用maxcom) | |
return maxcom(integer1, integer2); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment