我希望通过在行和列中的元素中插入随机数而不重复来生成6x6矩阵。到目前为止这是我的代码。谢谢您的帮助!
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int array[6][6];
int rows, columns;
int random;
srand((unsigned)time(NULL));
for(rows=0;rows<6;rows++)
{
for(columns=0;columns<6;columns++)
{
random=rand()%36+1;
array[rows][columns] = random;
printf("%i",array[rows][columns]);
}
printf("\n");
}
return 0;
}
答案 0 :(得分:3)
为避免重复:
答案 1 :(得分:1)
试试这个:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int array[6][6];
int rows,columns;
int random,i;
int randvalues[36],m=0;
int t,j;
for(i=0;i<36;i++) //assigning values 1 to 36
randvalues[i]=i+1;
for(i=0;i<36;i++) //shuffle logic
{
j=i+rand()/(RAND_MAX/(36-i) + 1);
t=randvalues[j];
randvalues[j] = randvalues[i];
randvalues[i] = t;
}
for(rows=0;rows<6;rows++) //conversion from 1-D to 2-D array and printning
{
for(columns=0;columns<6;columns++)
{
array[rows][columns] = randvalues[m++];
printf("%d " , array[rows][columns]);
}
printf("\n");
}
return 0;
}