| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2315 人关注过本帖
标题:随机数
只看楼主 加入收藏
lld
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2008-1-12
收藏
得分:0 
哦..还在努力..试试
2008-01-28 20:09
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
生成随机数以后加个if判断是否和已生成的相通.相通则抛弃这个成成的随机数,重新生成
2008-01-28 21:43
lld
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2008-1-12
收藏
得分:0 
#include "stdio.h"

#include "time.h"

#include "stdlib.h"

#define N 9

#define M 20

void main()
{
    int i,j=0;

    int num[N];

    printf("随机数是:");

    srand((unsigned)time(0));

    for (i=0;i<N;i++)
    {
        num[i]=rand()%M;
    }

    for (i=0;i<N;i++)
    {
        if(num[j]==num[i])
        {
            num[j]=rand()%M;
        }
        j++;
    }

    for (i=0;i<N;i++)
    {
        printf ("%d\t",num[i]);
    }

    printf ("\n");
}

还是不会......555555......
2008-01-30 00:25
菜鸭
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2007-12-9
收藏
得分:0 
试着写了一个程序,运行通过
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
  int m,n[20];
  printf("请输入您需要出现的20位以内随机数个数:\n");
  scanf("%d",&m);
  if(m<=20)
  {
   fh:srand(time(NULL));
  for(m=1;m<=20;m++)
  {
    n[m]=rand();
    if(n[1]!=n[m+1])
    printf("NO.%2d个随机数:%d\n",m,n[m]);
    else
    goto fh;
  }
 }
  else
  printf("您输入的数字过大!");
  getch();
}

在TC下运行通过,也不知道在别的编译器下是否可以,请各位帮试试。

[[it] 本帖最后由 菜鸭 于 2008-1-30 11:37 编辑 [/it]]

谈笑声中话天地,清茶浊酒品江湖。
昔日豪杰今安在?中华代有人才出!
2008-01-30 01:40
bnsain
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-1-18
收藏
得分:0 
srand 和rand一起用
srand((signed) time(0));
   for(i=0; i<10; i++)
       printf("%d\n", rand() % 10);
在10以内随机取值!
2008-01-30 16:49
lld
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2008-1-12
收藏
得分:0 
不行啊 不知道怎么做..
2008-01-31 12:59
菜鸭
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2007-12-9
收藏
得分:0 
回复 16# 的帖子
哥们呀,上面已经回复了程序了,自己理解之后,参考着自己写一个吧。你不能让大家帮你把题做得跟习题要求一样,然后你抄一遍就可以了吧?那样你永远也不会自己编程序的。
   
     吃饭要自己吃,不要总想着别人喂吧~

谈笑声中话天地,清茶浊酒品江湖。
昔日豪杰今安在?中华代有人才出!
2008-01-31 13:58
lld
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2008-1-12
收藏
得分:0 
呵呵 我吃的是C++
2008-02-04 19:11
jxw123
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-2-16
收藏
得分:0 
这样写就可以了!
//产生10个不重复的随机数

#include"stdio.h"
#include"stdlib.h"
#include"time.h"
int a[10];//产生10个随机数
void lessen(int m,int k)
{
    int i,j;
    for(i=m;i<k;i++)//控制不产生重复的随机数
    {
        a[i]=a[i+1];
    }
}
void main()
{
    int k,r=0,m;
    srand((unsigned)time(NULL));
    for(k=0;k<100;k++)//用来控制随机数的范围
    {
        a[k]=r;
        r=r+1;
    }
    for(int i=1;i<=10;i++) //产生10个随机数  
    {
        m=rand()%k;
        printf("%d\n",a[m]);
        lessen(m,k);
        k--;
    }
    printf("\n");
}
2008-02-16 05:35
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
/* 产生10个不同的随机数
其实现是对与以产生的随机数进行比较 */

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define MAX 10

int main(void)
{
    int i, j, temp;
    int ar[MAX];
   
    i = 0;
    while(i < MAX)
    {
        temp = rand();
        for(j = 0; j <= i; j++)
        {
            if(temp == ar[j])
                break;
        }
        if(i == 0 || temp != ar[j])
        {
            ar[i] = temp;
            printf("%d ", temp);
            ++i;
        }
    }
    getchar();
    return 0;
}


[[it] 本帖最后由 cosdos 于 2008-2-16 13:52 编辑 [/it]]

—>〉Sun〈<—
2008-02-16 13:51
快速回复:随机数
数据加载中...
 
   



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

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