随机生成1万个不重复的数字

本文介绍了一种使用C语言生成并打乱1万个数字的方法。首先创建包含1万连续整数的数组,然后利用随机数函数对数组元素进行随机交换,以实现随机排序。文章通过具体的代码展示了这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天去C语言贴吧里面看到一个人问这个问题,我就在这里把算法写了下来。

主要思路就是:

1.先生成1万个数字,保存在数组里面。

2.然后再打乱这1万个数字的排列顺序。

下面是全部测试代码:

 1 #include <stdio.h>
 2 #include <stdlib.h>//srand头文件
 3 #include <time.h>//time头文件
 4 
 5 int main()
 6 {
 7     srand(time(NULL));
 8     int array[10000];
 9     int temp, p1, p2, count = 0;
10     for (int i = 0; i < 10000; i++)
11     {
12         array[i] = i;
13     }
14     int num= rand() % 10000;
15     while (--num)   //随机交换num个数字
16     {
17            p1 = rand() % 10000;//具体交换的数字
18            p2 = rand() % 10000;//同上
19            temp = array[p1];
20            array[p1] = array[p2];
21            array[p2] = temp;
22     }
23     for (int i = 0; i < 10000; i++)
24     {
25         printf("%d  ",array[i]);
26         ++count;
27         if (0 == (count % 10))//输出10个换一行
28         {
29             printf("\n");
30         }
31     }
32 }

 

转载于:https://www.cnblogs.com/analyze/p/3253696.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值