| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2403 人关注过本帖
标题:请问一下rand怎么用呢?
只看楼主 加入收藏
wnd0617
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-12-11
收藏
 问题点数:0 回复次数:11 
请问一下rand怎么用呢?
c语言中, 想设一k位的数组,且每个数大小不超过b
使a[0]~a[k-1]为随机小于b的数字

对rand不太熟悉,请高手指点下
 

能把循环完整的表示出来么?

for(i=0,i<b,i++)
{
???????
a[i]=???;

}
还有需要怎么定义最好也给说下,谢谢
搜索更多相关主题的帖子: rand 
2008-12-11 10:56
柳无痕
Rank: 1
来 自:浙江省
等 级:新手上路
帖 子:57
专家分:0
注 册:2008-12-10
收藏
得分:0 
随机的话要用srand
2008-12-11 11:26
cjl730
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2008-10-28
收藏
得分:0 
回复 第2楼 柳无痕 的帖子
能具体的写一个代码吗?
谢谢
2008-12-11 11:27
luoxiaohua27
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-11-17
收藏
得分:0 
scanf("%d%d",&b,&k);
for(i=0;i<k;i++)
a[i]=rand()%b;
2008-12-11 13:28
cjl730
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2008-10-28
收藏
得分:0 
回复 第4楼 luoxiaohua27 的帖子
你这样写的话 int a[i] 会溢出的
(int)rand()这样写的话我觉得更好一些
#include<stdio.h>
#include<stdlib.h>
int main()
{
   int b , k , i;
   scanf("%d %d" , &b , &k);
   int a[k];
   for(i = 0; i < k ; i ++)
       a[i] = (int)rand() % b;
   for(i = 0; i < k ; i ++)
       printf("%d " , a[i]);
   system("pause");
}
有写的不好之处请多点评
2008-12-11 14:42
Flybee1
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-12-11
收藏
得分:0 
以下是引用cjl730在2008-12-11 14:42的发言:

你这样写的话 int a 会溢出的
(int)rand()这样写的话我觉得更好一些
#include
#include
int main()
{
   int b , k , i;
   scanf("%d %d" , &b , &k);
   int a[k];
   for(i = 0; i < k ; i ++)
  ...

int b , k , i;
   scanf("%d %d" , &b , &k);
   int a[k];
这样定义数组是不行的,[]里面不能包含变量,你可以这样,自己先估计一个数代替k,当然了,这个数得比k要大一些,比如这样:
   int b , k , i;
   scanf("%d %d" , &b , &k);
   int a[10];
等下你输入k的值控制在10以内就行了。
2008-12-11 15:16
柳无痕
Rank: 1
来 自:浙江省
等 级:新手上路
帖 子:57
专家分:0
注 册:2008-12-10
收藏
得分:0 
rand函数产生的是伪随机数,重复调用rand函数能够产生一系列数字,这些数字看起来是随机的。但每次执行这个程序时,这些数的顺序都会重复。如果程序在完成调试之后,每次执行时产生一组不同顺序的随机数,那么是用标准库函数srand来实现的。由于是用手机上的没法给出代码了
2008-12-11 15:36
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>        // srand(),rand()在其中
#include <time.h>        // time()在其中
void main()
{
    int a[10],i;
    srand(time(0));        //随机初始化函数,time(0)给出不同的随机种子。使得每次得到的随机数组不一样
    for(i=0;i<10;i++)
        a[i]=rand()%100;        //随机函数:   %100:取0--100以内的随机数
  for(i=0;i<10;i++)
      printf("%5d",a[i]);
   printf("\n");
}
2008-12-12 11:35
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
如果直接使用rand,随机的应该是一样的。
rand应该配合srand使用
程序代码:
#include <time.h>
#include <stdio.h>
int main(void){
  long t;
  int i;
  srand((unsigned)time(&t));
  for(i=1;i<=20;i++){
    printf("%d ",rand()%10);
  }
  getch();
}

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-12-12 12:11
cjl730
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2008-10-28
收藏
得分:0 
#include<time.h>
#include<stdlib.h>
int main()
{
int i,j,a[10];
srand((int)time(0));
for(i=0;i<10;i++)
{
a[i] =1+(int)(10.0*rand()/(RAND_MAX+1.0));
/*printf(" %d ",j);*/
}
for(i=0;i<10;i++)
{
   printf("%d " , a[i]);
}
system("pause");
}
这样行不行?
2008-12-12 19:02
快速回复:请问一下rand怎么用呢?
数据加载中...
 
   



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

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