C语言 打乱数组

打乱数组

代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void disorganise(int a[], int len);
void exchange(int* a, int* b);

int main(void)
{
    int a[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,};
    int len = ( sizeof(a) / sizeof(a[0]) );

    disorganise(a, len);

    for (int i = 0; i < len; i++) {
        printf("%d:\t%d\n", i, a[i]);
    }

    return 0;
}

void disorganise(int a[], int len)
{
    srand( time(NULL) );
    int rN1 = (rand() % len);
    int rN2 = (rand() % len);
    for (int i = 0; i < 20; i++) {
        if (rN1 != rN2) {
            exchange(&a[rN1], &a[rN2]);
        }
        rN1 = (rand() % len);
        rN2 = (rand() % len);
    }
}

void exchange(int* a, int* b)
{
    int t;
    t = *a;
    *a = *b;
    *b = t;
}

输出样例

0: 7

1: 12

2: 5

3: 4

4: 2

5: 8

6: 6

7: 3

8: 10

9: 11

10: 9

11: 13

12: 1

输出结果随机

发布了7 篇原创文章 · 获赞 5 · 访问量 1456

猜你喜欢

转载自blog.csdn.net/AimerNeige/article/details/100540797