| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 504 人关注过本帖
标题:关于产生不同的4个随机数
只看楼主 加入收藏
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
关于产生不同的4个随机数
void RanNum(int randomNumber[4])
{
    srand((unsigned)time(NULL));
    for(int i = 0; i < 3; i++)
    {
        randomNumber[i] = rand() % 10;
        while(randomNumber[0] == 0)
        {
            randomNumber[0] = rand() % 10;
        }
        while(randomNumber[i] == 10)
        {
            randomNumber[i] = rand() % 10;
        }
        for(int j = 0; j < i; j++)
        {
            while(randomNumber[j] == randomNumber[i])
            {
                randomNumber[i] = rand() % 10;
                j = 0;
            }
        }
    }
}

代码如上
但是有点问题:
1.0会重复出现 例如8090 8900,其他数字没有问题
2.最后一位一定是0
2017-03-12 14:07
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
收藏
得分:0 
补充:
主函数代码如下:
    int randomNumber[4]
RanNum(randomNumber);
    for(int i = 0; i < 4; i++)
    {
        cout << randomNumber[i];
    }
2017-03-12 14:09
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1744
专家分:3216
注 册:2015-12-2
收藏
得分:10 
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void chongf(int* ar, int d)//判断是否重复数字,如果是则重新生成一个随机数
{
     for(int i = 0; i<d; i++)
     {
         if(ar[i] == ar[d])
         {
             ar[d] = rand() % 10 ;
             chongf(ar, d);
         }
     }
 }

 int main()
 {
     int arr[4];
     srand(time(0));
     for(int i = 0; i<4; i++)
     {
         arr[i] = rand() % 10 ;
         chongf(arr, i);
     }
     for(int i = 0; i<4; i++)
     {
          printf("%d ",arr[i]);
     }
 }
2017-03-12 14:26
快速回复:关于产生不同的4个随机数
数据加载中...
 
   



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

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