hc20031102_ 2022-03-11 15:24 采纳率: 83.3%
浏览 17
已结题

程序无报错,但是无结果

问题遇到的现象和发生背景

在求最大公约数和最小公倍数过程

问题相关代码,请勿粘贴截图

#include<stdio.h>

long long int gcd(long long int a,long long int b)
{
long long int r = a % b;
while (r != 0)
{
r = a % b;
a = b; b = r;
}
return b;
}

long long int lcm(long long int a, long long int b)
{
long long int d;
d = gcd(a,b);
long long int c;
c = (a * b) / d;
return c;
}

int main(void)
{

long long int a, b, d, m;
scanf_s("%lld %lld", &a, &b);
if (a < 0 || b < 0)
{
    printf("Input Error");
}
else
{
    d = gcd(a,b);
    m = lcm(a,b);
    printf("%lld %lld",d,m);
}


return 0;

}

运行结果及报错内容

不报错,但是输不出结果

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

2条回答 默认 最新

  • 树下等苹果 2022-03-11 15:47
    关注

    在gcd函数里,你令b=r,因为只有r==0时才结束循环,所以该函数返回值永远为0。而在lcm中有:d = gcd(a,b);c = (a * b) / d; d为gcd函数返回值等于0,而在c = (a * b) / d中,你把0作为了被除数,这是不可以的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月22日
  • 已采纳回答 3月14日
  • 创建了问题 3月11日

悬赏问题

  • ¥15 表达式必须是可修改的左值
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题