我想通过插入随机数的行和列中的元素,而不必重复,以产生一个6×6矩阵。 这是到目前为止我的代码。 谢谢您的帮助!
#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;
}
尝试这个:
#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;
}
文章来源: C Programming; Producing a 2-Dimensional Matrix with Random Numbers without Repetition