| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 585 人关注过本帖
标题:求公因数遇到问题
只看楼主 加入收藏
zhangs140
Rank: 2
等 级:论坛游民
帖 子:63
专家分:59
注 册:2009-7-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
求公因数遇到问题
//两个数的公因数
#include "iostream.h"
void main()
{
    int a,b,k,t,i;
    cin>>a>>b;
    if(a>b)
    {t=a;a=b;b=t;}
    for(i=1;i<=a;i++)
    {
        if(a%i==0&&b%i==0)
            k=i;
         cout<<k<<endl;
    }
}
输出两个数的公因数 比如15 和45的公因数  为什么会出现图中这样的结果?谢谢

未命名.jpg (11.01 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 问题 
2009-08-09 16:11
soler
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:181
专家分:1077
注 册:2005-7-16
收藏
得分:10 
在for循环里面cout<<k<<endl;之前加个判断语句,判断k的值是否发生变化if(i==k),如果变化就打印
#include "iostream.h"
void main()
{
    int a,b,k,t,i;
    cin>>a>>b;
    if(a>b)
    {t=a;a=b;b=t;}
    for(i=1;i<=a;i++)
    {
        if(a%i==0&&b%i==0)
            k=i;
        if(i==k)
         cout<<k<<endl;
    }
}

[ 本帖最后由 soler 于 2009-8-9 16:50 编辑 ]
2009-08-09 16:46
CCVC果冻爽
Rank: 4
等 级:业余侠客
帖 子:116
专家分:209
注 册:2009-7-31
收藏
得分:0 
我晕,c++的看不懂。soler你貌似什么都行啊!
2009-08-09 16:49
soler
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:181
专家分:1077
注 册:2005-7-16
收藏
得分:0 
我猜出来的,,,^_^,c++我也不懂,看别人这么写的多了,就知道大概意思了。
2009-08-09 16:51
jude1990
Rank: 2
等 级:论坛游民
帖 子:29
专家分:12
注 册:2009-7-26
收藏
得分:10 
if 后面加个大括号也能解决   
for(i=1;i<=a;i++)
    {
        if(a%i==0&&b%i==0)
        { k=i;
         cout<<k<<endl;
        }
    }
细节问题……
2009-08-09 16:58
zhangs140
Rank: 2
等 级:论坛游民
帖 子:63
专家分:59
注 册:2009-7-26
收藏
得分:0 
对啊 成功
可是这是为什么呢?
2009-08-09 17:01
jude1990
Rank: 2
等 级:论坛游民
帖 子:29
专家分:12
注 册:2009-7-26
收藏
得分:0 
if语句只管一行
在不满足 a%i==0&&b%i==0  这个条件的时候 实际上还是接着输出k的  
 所以soler的解决方法是判断k是否有改变  这个解法本身就是提示  比我的强
2009-08-09 17:06
zhangs140
Rank: 2
等 级:论坛游民
帖 子:63
专家分:59
注 册:2009-7-26
收藏
得分:0 
  懂得了  谢谢你们啊
2009-08-09 17:08
快速回复:求公因数遇到问题
数据加载中...
 
   



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

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