| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 593 人关注过本帖
标题:刚开始自学算法,连通问题的快速查找算法中一句话看不懂,求解答,谢谢
只看楼主 加入收藏
我叫K
Rank: 2
等 级:论坛游民
帖 子:74
专家分:19
注 册:2015-4-28
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:3 
刚开始自学算法,连通问题的快速查找算法中一句话看不懂,求解答,谢谢
程序代码:
 #include <stdio.h>
    #define   N   10000
    
    int main(void)
    {
        int   i, p, q, t, id[N];
        
        for (i = 0; i < N; i++)
           id[i] = i;
        while (scanf("%d %d\n", &p, &q)==2)
        {
           if (id[p] == id[q])
               continue;
           for (t = id[p], i = 0; i < N; i++)
               if (id[i] == t)
                 id[i] = id[q];
           printf(" %d %d\n", p, q);
        }
        return 0;
    }

下面这句话怎么理解:
scanf("%d %d\n", &p, &q)==2
等于2什么意思????
2015-05-18 20:24
erty1001
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
收藏
得分:20 
scanf("%d %d",&a,&b);


如果a和b都被成功读入,那么scanf的返回值就是2
2015-05-18 20:36
我叫K
Rank: 2
等 级:论坛游民
帖 子:74
专家分:19
注 册:2015-4-28
收藏
得分:0 
回复 2楼 erty1001
朋友,你好,可以跟我说下这个算法的思想嘛  书上不是很详细,我搞不太懂
    1.scanf返回值这个我懂了,是计算输入了几个值
    2.这个算法,我现在看了半个多小时,程序每步要做的事我是知道了,但是我不明白它这么做之后,怎么达到目的呢???

他们和我说,喜欢一个女生要大胆追!
2015-05-18 20:49
我叫K
Rank: 2
等 级:论坛游民
帖 子:74
专家分:19
注 册:2015-4-28
收藏
得分:0 
回复 2楼 erty1001
我知道了  这里只是遍历这个数组把所有的p改成q而已,没有涉及全部,谢谢你的热心回答,你的回答对我的帮助很大,谢谢。

他们和我说,喜欢一个女生要大胆追!
2015-05-18 20:52
快速回复:刚开始自学算法,连通问题的快速查找算法中一句话看不懂,求解答,谢谢 ...
数据加载中...
 
   



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

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