为什么代码这样写求不出最大公约数?(编译没问题)

kk\n 2023-04-10 23:12:09

 

 

...全文
173 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-04-10
精选
  • 打赏
  • 举报
回复
您的问题已经帮您同步至问答, 链接: https://ask.csdn.net/questions/7921893, 请您保持关注, Ada会在评论区为您更新结题状态
yuanhuan799 2023-05-10
  • 打赏
  • 举报
回复

你这个函数功能就是判断数是不是这两个数的公约数,不是找最大公约数。而且循环太多了 for (int i = 1; i <= a/2 && i <= b/2; i++) //从1还是,最大到小的哪个数的一半即可

柯本 2023-04-12
  • 打赏
  • 举报
回复 1

你程序有一个最大的问题,就是除0错了,for(i=0;....) { ...a%i...明显的除0错了
另外。你的算法也完全不对,给你个正确求公约数的参考(函数)
int GetDivisor( int m, int n) //辗转相除法求m/n的公约数
{
int r;
while (n)
{
r=m % n;
m=n;
n=r;
}
return m;
}

kk\n 2023-04-13
  • 举报
回复
@柯本 感谢感谢

65,194

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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