| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 293 人关注过本帖
标题:产生随机数
只看楼主 加入收藏
习惯被动
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:139
专家分:144
注 册:2012-3-5
结帖率:84.62%
收藏
已结贴  问题点数:10 回复次数:4 
产生随机数
程序代码:
#include <iostream>
#include <time.h>
using namespace std;
#define max 7
int main()
{
    int i(0),j,k,l(1),a[max];
    srand((unsigned)time(NULL));
    k=rand()%max;
    a[i]=k;
    k=rand()%max;
    while (i!=max)
    {
        for(j=0;j<=i;j++)
        {
        if(k==a[j])
        l=0;
        }
        if(l)
        {
        i++;
        a[i]=k;
        }
        l=1;
        k=rand()%max;
    }
    for(i=0;i<max;i++)
    {
    cout<<a[i]<<" ";
    }
    cout<<endl;
    return 1;
}

产生0-max的整数(重复产生的会被删除),调试表明是for循环出了问题,但我想了很久想不通为什么for循环会是死循环,求解。
搜索更多相关主题的帖子: max color 
2012-05-23 06:46
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9026
专家分:54030
注 册:2011-1-18
收藏
得分:0 
强,我愣没看懂你代码的逻辑
2012-05-23 08:35
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:10 
while (i != max - 1)

随机数范围是在0 ~ max - 1(6)的范围内,不会等于max,
查找是否有重复的时候,你总会查到这个范围的数,i没有办法++,所以死循环。

我们都在路上。。。。。
2012-05-23 10:58
习惯被动
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:139
专家分:144
注 册:2012-3-5
收藏
得分:0 
回复 2楼 rjsp
逐个产生随机数,删除已经产生过的随机数。
2012-05-23 23:31
习惯被动
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:139
专家分:144
注 册:2012-3-5
收藏
得分:0 
回复 3楼 hellovfp
明白了,非常感谢!
2012-05-23 23:42
快速回复:产生随机数
数据加载中...
 
   



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

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