随机化C中的二维数组

时间:2014-11-17 13:15:33

标签: c arrays random

我试图创建一个随机二维数组,就像一个游戏板。 到目前为止,我已经做到了这一点。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>


int main(void)
{
    char test[5]=
    {
       '.', 'C', 'm', 's', 'e',
    };
    int i, j, r;
    char tab[10][10];
    srand(time(NULL));
    for (i=1; i <= 5; i++)
    {
        for (j=1; j <= 5; j++)
        {
            r = rand() %5;
            tab[i][j] = test[r];
        }
    }
    printf("%c ",tab[i][j]);
    return 0;
}

但是当我尝试运行它时,我在控制台中唯一得到的就是&#34; V&#34;。 谢谢。

2 个答案:

答案 0 :(得分:0)

你必须改变如下

for (i=1; i <= 5; i++)
{
    for (j=1; j <= 5; j++)
    {
        r = rand() %5;
        tab[i][j] = test[r];
        printf("%c ",tab[i][j]);
    }
}

答案 1 :(得分:-1)

你的printf在循环外面,所以它只打印最后一个条目。所以将printf引入循环,如下所示:

for (i=1; i <= 5; i++)
{
    for (j=1; j <= 5; j++)
    {
        r = rand() %5;
        tab[i-1][j-1] = teste[r];
        printf("%c ",tab[i-1][j-1]);
    }
}

另请注意,Array从索引0开始而不是1,因此请按照上面的代码更改数组赋值。