VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 419|回复: 1

[求助] 最简单的求最大公约数的代码不能运行

[复制链接]
00_avatar_middle
在线会员 发表于 2016-3-3 17:10:07 | 显示全部楼层 |阅读模式
3驿站币
代码如下,请诸位大神帮我指出问题,谢谢。
#include <stdio.h>

int main()
{
        int a,b;
        int i,min,max;
        printf("请输入两个整数");
        scanf("%d%d",&a,&b);
        if(a<b)
        {
                min=a;
        }
        else
        {
                min=b;
        }
        for(i=1;i<=min;i++)
        {
                if(a%i==0)
                {
                        if(b%i==0)
                        {
                                max=i;
                        }
                        else
                        {
                                break;
                        }
                }
                else
                {
                        break;
                }
        }
        printf("最大公约数是%d",max);
        return 0;
}





上一篇:C++图像读取和显示、漫游
下一篇:SQLConfigDataSource如何链接VF数据库
53_avatar_middle
在线会员 发表于 2016-3-4 09:52:40 | 显示全部楼层
这个循环里面有逻辑错误

for(i=1;i<=min;i++)
        {
                //a 被 i 整除则 ...
                if(a%i==0)
                {
                        if(b%i==0)
                        {
                                max=i;
                        }
                        //这里的道理同下面
                        //这一句是多余的
                        else
                        {
                                break;
                        }
                }
               //a 不能被  i 整除 则退出循环
              //这个逻辑是错误的,假定 a = 11 ,循环到i=2的时候 11不能被2整除,退出了循环。
              //因此,这一句是多余的。
                else
                {
                        break;
                }
        }
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-4-19 09:24

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表