| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 658 人关注过本帖
标题:关于随机函数的问题,球大神指点。
只看楼主 加入收藏
kuilovelei
Rank: 1
等 级:新手上路
帖 子:25
专家分:3
注 册:2012-10-22
收藏
得分:0 
回复 10楼 Mirob
你重新生成的a[i]没有进行检验,a[i]虽然重置了,但内循环是从已有的j继续的,并未返回0重新循环
2012-11-17 14:38
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:0 
回复 11楼 kuilovelei
有点糊涂了,能帮忙改改我的代码吗?谢谢了
2012-11-17 15:54
kuilovelei
Rank: 1
等 级:新手上路
帖 子:25
专家分:3
注 册:2012-10-22
收藏
得分:0 
回复 12楼 Mirob
改成这样试试
程序代码:
a[o]=rand()%20;
for(i=0;i<N;i++)
{a[i]=rand()%20;
for(j=1;j<i;j++)
{if(a[i]==a[j])
i--;
break;     //跳出内循环//
}
我也没试过
2012-11-17 21:35
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:0 
回复 13楼 kuilovelei
好像不行?你试试?
2012-11-17 21:43
kuilovelei
Rank: 1
等 级:新手上路
帖 子:25
专家分:3
注 册:2012-10-22
收藏
得分:0 
回复 14楼 Mirob
if()
{i--;break;}这样试试
2012-11-17 21:55
kuilovelei
Rank: 1
等 级:新手上路
帖 子:25
专家分:3
注 册:2012-10-22
收藏
得分:2 
回复 14楼 Mirob
# include <stdio.h>
 # include <stdlib.h>
 # include <time.h>
 #define N 20
 main()
 {int a[N],i,j,x;
 srand((int)time(NULL));
 a[0]=rand()%20;
 for(i=0;i<N;i++)
    {a[i]=rand()%20;
      for(j=0;j<i;j++)
        {
        if(a[i]==a[j])
             {
              i--;
              break;
              }
        }
    }
    for(i=0;i<N;i++)
    printf("%4d",a[i]);
 }
这是我自己写的   试过了 可以的
2012-11-17 22:09
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:0 
回复 16楼 kuilovelei
  看懂了,tks。
2012-11-17 22:16
kuilovelei
Rank: 1
等 级:新手上路
帖 子:25
专家分:3
注 册:2012-10-22
收藏
得分:0 
回复 17楼 Mirob
    我也是最近才碰到过 自己弄通就行
2012-11-17 22:20
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:0 
回复 16楼 kuilovelei
我又改了一下我的代码,你再看。
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
main()
{int a[20],i,j,x;
srand((int)time(NULL));
for(i=0;i<20;i++)
   {a[i]=rand()%20;
     x=0;
    for(j=x;j<i;j++)
       {
        if(a[i]==a[j])
            {
              a[i]=rand()%20;
                 j=-1;  // 这里后面要执行j++,我直接把j=-1,与j++抵消。。  然后 j=0了,然后又从新比较。我这里没有让它调到最上层去。
             }
       }
   }  
for(i=0;i<20;i++)
   printf("%4d",a[i]);
}


[ 本帖最后由 Mirob 于 2012-11-17 22:37 编辑 ]
2012-11-17 22:35
快速回复:关于随机函数的问题,球大神指点。
数据加载中...
 
   



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

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