鱼C论坛

 找回密码
 立即注册
查看: 1451|回复: 7

[已解决]srand的问题学姐帮帮我吧

[复制链接]
发表于 2019-5-20 22:39:09 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 带上面具的孩纸 于 2019-5-20 23:01 编辑

话不多说先上代码

  1. void shuffle(int array[], int length)
  2. {
  3.         int index, temp, i;
  4.         static int t1, t2;

  5.         srand(t1);
  6.         t1 = rand();

  7.         t2 = time(NULL);
  8.         srand(t1+t2);

  9.         for (i = 0; i < length; i++)
  10.         {
  11.                 index = rand() % (length - i) + i;
  12.                 if (index != i)
  13.                 {
  14.                         temp = array[i];
  15.                         array[i] = array[index];
  16.                         array[index] = temp;
  17.                 }
  18.         }
  19. }
复制代码


不懂得srand() rand()怎么用 帮帮忙解释解释
最佳答案
2019-5-20 22:39:10
带上面具的孩纸 发表于 2019-5-20 23:31
不是指定,只是皮一下

函数说明有看过 但是不太理解具体怎么使用

使用就是两个结合起来使用啊 !
你不愿意百度 我给你百度了一个答案

rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。

最佳答案

查看完整内容

使用就是两个结合起来使用啊 ! 你不愿意百度 我给你百度了一个答案 rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-20 22:39:10 | 显示全部楼层    本楼为最佳答案   
带上面具的孩纸 发表于 2019-5-20 23:31
不是指定,只是皮一下

函数说明有看过 但是不太理解具体怎么使用

使用就是两个结合起来使用啊 !
你不愿意百度 我给你百度了一个答案

rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-20 23:21:50 | 显示全部楼层
为什么指定是学姐帮忙???
srand是初始化随机数发生器
rand是生成随机数发生器

srand用法:void srand(unsigned int seed)
seed相当于一个种子,后面生成的随机数就是基于这个种子产生的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-5-20 23:31:03 | 显示全部楼层
HUMMER军 发表于 2019-5-20 23:21
为什么指定是学姐帮忙???
srand是初始化随机数发生器
rand是生成随机数发生器

不是指定,只是皮一下

函数说明有看过 但是不太理解具体怎么使用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-22 13:36:57 | 显示全部楼层
本帖最后由 bin554385863 于 2019-5-22 13:38 编辑
  1. #include <stdio.h>
  2. #include <time.h>
  3. void main()
  4. {
  5.     int n;
  6.     printf("请输入随机数的个数\n");
  7.     scanf("%d", &n);
  8.     int arr[n];
  9.     srand(time(NULL));

  10.     for (int i = 0; i < n; i++)
  11.     {

  12.         arr[i] = rand();
  13.     }
  14.     for (int j = 0; j < n; j++)
  15.     {
  16.         printf("arr[%d] = %d\n", j, arr[j]);
  17.     }
  18. }
复制代码

-------------------------------------------------------版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

E:\Administrator\Documents\My C>cmd /C "c:\Users\Administrator\.vscode\extensions\ms-vscode.cpptools-0.23.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-5fvlb0y5.fck --stdout=Microsoft-MIEngine-Out-omtmgqmb.h2p --stderr=Microsoft-MIEngine-Error-vn0qe5ry.pe5 --pid=Microsoft-MIEngine-Pid-ctvjxhdw.l20 --dbgExe=E:\MinGW\bin\gdb.exe --interpreter=mi "
请输入随机数的个数
5
arr[0] = 22072
arr[1] = 28627
arr[2] = 5107
arr[3] = 4012
arr[4] = 29538

E:\Administrator\Documents\My C>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-22 19:23:39 | 显示全部楼层
bin554385863 发表于 2019-5-22 13:36
-------------------------------------------------------版权所有 (c) 2009 Microsoft Corporation。保 ...

c语言定义都要在开头
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-22 20:05:53 | 显示全部楼层
本帖最后由 bin554385863 于 2019-5-22 20:14 编辑
几番离愁 发表于 2019-5-22 19:23
c语言定义都要在开头


for循环C11标准允许在循环内定义变量

for(int a = 1;;)
if(){int a = 1;..........}
C11标准都是合法的

还有
.....   
int n;
    printf("请输入随机数的个数\n");
    scanf("%d", &n);
    int arr[n];
......
在老编译器比如VC6.0是非法的,但是在VScode1.33(2019年版本)就是合法的.新的标准允许在一定条件下使用变量做数组的大小,比如上面的arr[n].
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-23 11:04:36 | 显示全部楼层
为什么指定是学姐帮忙???
srand是初始化随机数发生器
rand是生成随机数发生器

srand用法:void srand(unsigned int seed)
seed相当于一个种子,后面生成的随机数就是基于这个种子产生的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 10:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表