求最大公约数和最小公倍数的问题,这样写怎么不对呢

问也去 2018-04-01 10:48:26
# include <stdio.h>
int main()
{
int m, n,sum,sum1;
int x, y;
int i, j;
printf("请输入两个整数:\n");
scanf_s("%d %d ", &m, &n);
if (m > n)
{
x = n;
y = m;
}
else
{
x = m;
y = n;
}
if (x == 0)
printf("%d\n", y);
while (x > 0)
{
i = y % x;
y = x;
x = i;
}
printf("%d\n", y);

sum = m * n;
sum1 = sum / y;
printf("%d", sum1);

return 0;

}
...全文
361 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 2018-04-01
  • 打赏
  • 举报
回复
scanf_s("%d %d ", &m, &n);改成:scanf_s("%d %d", &m, &n); 也就是去掉后面的空格
zhouqunhai 2018-04-01
  • 打赏
  • 举报
回复
算法就不对,最大公约数和最小公倍数不是这样算的,比如算最小公倍数,一般是用两个值中的大值的倍数去取余小值,看是否为0.

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧