小编use*_*268的帖子

rand()不产生随机[E]

我被要求编写一个程序,生成一个随机数的二维数组.我的代码产生奇怪的结果.无论矩阵的大小如何,它都会产生"反向对角矩阵"(不知道还有什么可以称之为).我要理解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)

c random

1
推荐指数
1
解决办法
181
查看次数

标签 统计

c ×1

random ×1