#include<stdio.h>int main(){ int max(int m,int n); int min(int m,int n,int p ); int m,n,p,q; scanf("%d%d",&m,&n); p=max(m,n); printf("最大公约数是%d\n",p); q=min(m,n,p); printf("最小公倍数是%d\n",q); return 0;} int max(int m,int n){ int t,z; if(n>m) { t=n;n=m;m=t; } while((z=m%n)!=0) { m=n; n=z; }} int min(int m,int n,int p){return((m*n)/p);}
1 回答
denmushi
TA贡献9条经验 获得超0个赞
你这个问题非常多啊。子函数算法我没看,首先函数声明要在主函数外部,写在全局,其次,你的max函数没有写返回值,还有,求最小公倍数的函数不要传入3个参数,只要传入两个就行,虽然你这样写也可以实现,但是不符合函数设计低耦合的原则,你可以在最小公倍数函数中调用最大公约数函数来解决,结果是一样的。
- 1 回答
- 0 关注
- 1170 浏览
添加回答
举报
0/150
提交
取消