|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
目的:对50个数进行不重复随机排序
在百度上搜了关于随机数方面的代码,程序还是没法正常打印出所有随机不重复数字
- #include<stdio.h>
- #include<stdlib.h>
- #include<time.h>
- int main()
- {
- int i;
- srand((int)time(0));
- for(i=0;i<50;i++)
- {
- printf("%d\n",rand%36);
- }
- }
复制代码
本帖最后由 jackz007 于 2020-3-9 12:38 编辑
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- void random(int array[] , const int n)
- {
- int c , k , m ;
- bool f ;
- srand(time(0)) ;
- for(k = 0 ; k < n ; k ++) array[k] = 0 ;
- m = 0 ;
- while(m < n) {
- c = rand() % n + 1 ;
- f = true ;
- if (m) {
- for(k = 0 ; k < m ; k ++) {
- if (array[k] == c) {
- f = false ;
- break ;
- }
- }
- }
- if (f) array[m ++] = c ;
- }
- }
- main(void)
- {
- int array[50] , k , n = 50 ;
- random(array , n) ;
- printf("%2d" , array[0]) ;
- for(k = 1 ; k < n ; k ++) printf("\t%2d" , array[k]) ;
- printf("\n") ;
- }
复制代码
编译运行实况:
- C:\Bin>g++ -o rand rand.c
- C:\Bin>rand
- 32 22 18 14 30 42 46 48 15 27
- 29 7 11 41 3 33 12 31 26 16
- 8 40 17 2 25 34 39 9 50 21
- 47 4 5 43 23 45 49 1 44 13
- 36 20 24 35 38 6 10 19 37 28
- C:\Bin>rand
- 49 34 37 27 35 47 41 29 38 36
- 3 32 4 40 24 13 39 8 20 50
- 18 5 11 1 12 44 7 9 10 30
- 26 43 33 6 19 16 2 15 31 22
- 17 23 25 14 48 45 21 42 28 46
- C:\Bin>rand
- 25 36 28 26 48 43 22 29 9 39
- 3 6 20 23 42 35 15 40 47 19
- 10 12 1 41 21 8 14 38 33 27
- 37 7 30 18 44 16 17 13 5 49
- 11 2 4 31 50 46 24 45 34 32
- C:\Bin>
复制代码
|
|