用C语言如何将一个一维数组中的元素随机排序

如题所述

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{
int i,j,n,k,t,a[100];
    srand((unsigned) time(NULL)); 
scanf("%d",&n);
k=n; //k:未定顺序的元素个数
for(i=0;i<n;i++)a[i]=i+1;
for(i=0;i<n-1;i++)
{
        j=rand()%k;  //产生0 ~ k-1的随机数j
        t=a[j];a[j]=a[k-1];a[k-1]=t; //将a[j]与“最后一个元素”对换
        k--;
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
    system("pause");
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答