数学建模社区-数学中国

标题: 【C 语言讨论组】连通性问题的一个解决方案(附代码) [打印本页]

作者: sea_star666    时间: 2011-4-6 21:43
标题: 【C 语言讨论组】连通性问题的一个解决方案(附代码)
本帖最后由 sea_star666 于 2011-4-6 21:45 编辑
  1. 连通性问题的一个解决方案:
复制代码
  1. #include <stdio.h>

  2. #define N 10000

  3. int main()
  4. {
  5.         int i,p,q,t,id[N];

  6.         for(i=0;i<N;i++)
  7.                 id[i]=i;
  8.         while(scanf("%d%d",&p,&q)==2)
  9.         {
  10.                 if(id[q]==id[p])
  11.                         continue;
  12.                 for(t=id[q],i=0;i<N;i++)
  13.                         if(id[i]==t)
  14.                                 id[i]=id[p];
  15.                         printf("%d %d\n",p,q);
  16.         }
  17.         return 0;

  18. }
复制代码



希望大家一起来讨论!


作者: suolunga    时间: 2011-4-7 20:25
呵呵!C语言不用已经几年了!忘得差不多了!!
作者: shuidishenyu    时间: 2012-8-19 08:25
while(scanf("%d%d",&p,&q)==2)

        {

                if(id[q]==id[p])

                        continue;

                for(t=id[q],i=0;i<N;i++)

                        if(id[i]==t)

                                id[i]=id[p];

                        printf("%d %d\n",p,q);

        }

        return 0;



}
你的这个循环想解决什么问题,我运行过了,分别输入两个数,最后同时输出这两个数。
作者: shuidishenyu    时间: 2012-8-19 08:29
有点不太明白那个while循环




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5