首页 > 代码库 > 3.1 最大公约数和最小公倍数,用全局变量和函数
3.1 最大公约数和最小公倍数,用全局变量和函数
方法一:穷举
#include<stdio.h> int Max, Min; int main() { int max(int a, int b);//可以声明为void,因为不需要返回值。 int min(int a, int b); int a, b; scanf("%d %d", &a, &b); printf("\n"); max(a,b);//这里直接调用函数即可,如果让全局变量赋值会变0 。 min(a,b);//也就是,如果有Max = max(a,b),会导致Max的值变为0 。 printf("Max is %d and Min is %d\n", Max, Min); return 0; } int max(int x, int y) { int i, c; for(i = x > y? y : x; i > 0; i--){ if(x % i == 0 && y % i == 0){ Max = i; break; } } return 0;//既然是全局变量,那么不需要返回值 这句可以0也可以不写 。 } int min(int x, int y)//我使用的并非辗转相除,而是穷举。 { int i, c; for(i = x > y? x : y; i > 0; i++){ if(i % x == 0 && i % y == 0){ Min = i; break; } } return 0; }
方法二:辗转相除
#include<stdio.h> int Hcf,Lcd; int main() { void hcf(int, int);//由于只是借用函数,捎带全局变量,故不需要返回值 void lcd(int, int); int u, v; scanf("%d,%d", &u, &v); hcf(u,v); lcd(u,v); printf("H.C.F = %d\n", Hcf);//切记,两个全局变量要分开嵌套函数,比如这里嵌套了printf printf("L.C.D = %d\n", Lcd);//否则,值会错误 return 0; } void hcf(int u, int v)//辗转相除法 { int t, r; if(v > u) { t = u; u = v; v = t; } while((r = u % v) != 0) { u = v; v = r; } Hcf = v; } void lcd(int u, int v) { Lcd = u * v / Hcf; }
来自学习辅导
3.1 最大公约数和最小公倍数,用全局变量和函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。