求助 C++中初始化一个三行三列二维数组,值为从0到9随机排列,每数出现一次,之后按数组输出如何编写

各位大神帮帮忙 可再追加悬赏 急求急求

第1个回答  2012-11-11

1,先对数组赋值1-9;

2,对数组进行随机交换

3,输出。

 

以下代码在TC下运行成功,每次运行都会是一个二维 的随机数组。

 

#include <stdlib.h>

#include <stdio.h>

#include <time.h>


 

 

int main()

{

  int aa[3][3];

  randomize();


 

  for(int i=0,*a=aa[0];i<9;i++)

    a[i]=i+1;

  for(int i=0,j,k,t,*a=aa[0];i<9;i++)

  {

    j=rand()%9;k=rand()%9;

    t = a[j];

    a[j]=a[k];

    a[k] = t;

  }

  for(int i=0;i<3;i++)

  {

     for(int j=0;j<3;j++)

      printf("%d ",aa[i][j]);

     printf("\n");

  }


 

  return 0;

 

追问

请问为什么每次执行时 randomize() 都无法运行?

追答

能编译通过吗? randomize() 是初始化随机数种子,保证每次运行的随机化。

如果不能编译,请用以下代替:
time_t t;
srand((unsigned) time(&t));

第2个回答  2012-11-21
随机排列我不懂!
相似回答