我被要求编写一个程序,生成一个随机数的二维数组.我的代码产生奇怪的结果.无论矩阵的大小如何,它都会产生"反向对角矩阵"(不知道还有什么可以称之为).我要理解rand()产生一个介于0和RAND_MAX之间的伪随机数,但不知何故结果取决于我的矩阵的大小,我不确定这种行为是如何发生的.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAT_SIZE 5
void main (void)
{
srand(time(0));
unsigned char * ptr = malloc(MAT_SIZE*MAT_SIZE);
unsigned char i, j;
for(i = 0; i < MAT_SIZE; i++)
{
for(j = 0; j < MAT_SIZE ; j ++)
{
*(ptr + i + j ) = rand();
}
}
for(i = 0; i < MAT_SIZE ; i++)
{
for(j = 0; j < MAT_SIZE ; j ++)
{
printf("%5d", *(ptr + i + j));
}
printf("\n"); …Run Code Online (Sandbox Code Playgroud)