int main() { int m,n,a,b; printf("输入两个数为"); scanf("%d %d",&m,&n); int tem=m>n?m:n; for(a=tem;;a++) { if(a%tem==0) { printf("最小公倍数为%d",a); break; } } int tems=m<n?m:n; for(b=tems;;b--) { if(tems%b!=0) { printf("最大公约数为%d",b); break; } } return 0; }有什么改进的地方
时间: 2024-04-14 16:27:28 浏览: 52
c代码-输入两个正整数m和n,求其最大公约数和最小公倍数。
这段代码可以进行一些改进,以下是几个建议:
1. 可以在用户输入之前添加一些提示信息,以提高用户体验。
2. 可以将计算最小公倍数和最大公约数的部分封装成函数,提高代码的可重用性和可读性。
3. 在计算最大公约数的部分,可以使用辗转相除法(欧几里德算法)来简化计算过程。
4. 可以添加错误处理,例如输入非法值时给出错误提示并重新输入。
以下是改进后的代码示例:
```c
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
int main() {
int m, n;
printf("请输入两个整数:");
if (scanf("%d %d", &m, &n) != 2) {
printf("输入错误,请输入两个整数。\n");
return 1;
}
int lcm_result = lcm(m, n);
int gcd_result = gcd(m, n);
printf("最小公倍数为:%d\n", lcm_result);
printf("最大公约数为:%d\n", gcd_result);
return 0;
}
```
这样的改进使代码更加模块化和易于理解。同时,通过添加错误处理,可以提高程序的健壮性。
阅读全文