首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请教怎么将数组中元素顺序打乱

2012-10-21 
请问如何将数组中元素顺序打乱我想做一个连连看.比方说有一个数组含100个元素.每过一关,我要将这100个元素

请问如何将数组中元素顺序打乱
我想做一个连连看.
比方说有一个数组含100个元素.
每过一关,我要将这100个元素的值打乱.请问要怎么实现.

我想的方法是生成0-99之间的100随机数作为数组的索引.然后
int i, j;
int rand[100]; 存放0--99之间的随机数
int temp;
int arr[100]; //用于保存图片.我需要将这个数组打乱
for(i=0; i<59; i++)
{
  temp = arr[rand[i]];
  arr[rand[i]] = arr[i];
  arr[i] = temp;
}

你们看这样做效果好吗?还有更好的方法没啊?

[解决办法]

C/C++ code
#include <stdio.h>  #include <stdlib.h>  #include <time.h>   // 随机打乱一个数组  void random(int a[], int n)  {     int index, tmp, i;     srand(time(NULL));     for (i = 0; i <n; i++)      {         index = rand() % (n - i) + i;         if (index != i)           {              tmp = a[i];              a[i] = a[index];              a[index] = tmp;           }      }   }  int main()  {     int a[] = {1, 2, 3, 4, 5};     int i;     random(a, 5);     for (i = 0; i < 5; i++)     printf("%d ", a[i]);     printf("\n");     system("pause");     return 0;  } 

热点排行