标题:一个死循环的问题
只看楼主
xzghyd
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-3-29
 问题点数:0 回复次数:6 
一个死循环的问题
#include<iostream>
using namespace std;

int f(int a,int b)
{
        int max,min,index;
        int i=1;
        int count=0;
        
        max=a>b?a:b;
        min=a<b?a:b;
        
        while(true)
        {
            cout<<++count<<endl;
            for(;i<=min;i++)
            {
                if(min%i==0)
                    {
                        index=min/i;
                        break;
                    }
            }
            
            if(max%index==0)
                break;
        }

        return index;
}


int main()
{
    cout<<f(21,9)<<endl;

    return 0;
}

这是一个求最大a,b的最大公约数,那个while()死循环怎么解决啊?我没发现有错啊
搜索更多相关主题的帖子: return index include 公约数 max 
2008-10-07 21:37
xzghyd
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-3-29
得分:0 
cout是我发现while()是死循环的时候加的,用来验证while()是死循环的
2008-10-07 21:38
xzghyd
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-3-29
得分:0 
是 count
2008-10-07 21:39
沼泽
Rank: 4
等 级:业余侠客
威 望:8
帖 子:291
专家分:228
注 册:2008-9-15
得分:0 
i的初值应该是2,不然min%i==0那么for循环就会一直是执行到第一步就break了,i的值永远是1,所以就陷入了死循环,还有就是最好将index初始化
2008-10-07 23:01
沼泽
Rank: 4
等 级:业余侠客
威 望:8
帖 子:291
专家分:228
注 册:2008-9-15
得分:0 
i的初值应该是2,不然min%i==0那么for循环就会一直是执行到第一步就break了,i的值永远是1,所以就陷入了死循环,还有就是最好将index初始化
2008-10-07 23:03
huanlin
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-10-6
得分:0 
楼上说的好像没有效啊
2008-10-08 13:46
沼泽
Rank: 4
等 级:业余侠客
威 望:8
帖 子:291
专家分:228
注 册:2008-9-15
得分:0 
真的没效吗??
2008-10-08 14:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-236885-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027268 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved