打乱数组元素顺序

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

// 遍历数组
void printArr(int array[], int length);

int main(void) {
  /*
   * 需求:定义一个数组,存入1~5,要求打乱数组中所有数据的顺序
   * */
  int arr[] = {1, 2, 3, 4, 5};
  int len = sizeof(arr) / sizeof(arr[0]);

  printArr(arr, len);

  srand(time(NULL));
  for (int i = 0; i < len; i++) {
    // 获取一个随机索引,从0~(len - 1)
    int index = rand() % len;

    // 拿i指向的元素和index指向的元素交换
    int temp = arr[i];
    arr[i] = arr[index];
    arr[index] = temp;
  }
  printArr(arr, len);

  return 0;
}

void printArr(int array[], int length) {
  for (int i = 0; i < length; i++) {
    printf("%d ", array[i]);
  }
  printf("\n");
}
posted @ 2026-01-14 23:17  Zhuye_inking  阅读(1)  评论(0)    收藏  举报