首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C-矩阵,随机数

问C-矩阵,随机数
EN

Stack Overflow用户
提问于 2013-07-30 20:47:36
回答 3查看 8.2K关注 0票数 3

我写了一段代码来打印5x6的数字矩阵,但我正在尝试弄清楚如何使矩阵中的数字随机(如果可能,在区间内)。它与在行中获取随机数有多相似?

代码语言:javascript
复制
int row[50]
 srand(time(NULL));
 for(i=0;i<50;i++){
  row[i]=rand()%31+10;
  printf("%d ", row[i]);
 }

今天早些时候,我用这段代码对10-40个区间内的50个随机数进行了测试。

EN

回答 3

Stack Overflow用户

发布于 2013-07-30 20:51:20

您可以使用两个for循环:

代码语言:javascript
复制
int array[5][6];
srand(time(NULL));
int x, y;
for(x = 0; x < 5; x++) {
    for(y = 0; y < 6; y++) 
        array[x][y] = rand() % 31 + 10;
}
票数 3
EN

Stack Overflow用户

发布于 2013-07-30 20:54:55

除了jh314的答案之外,这里还有一个方便的函数来获取一个区间内的随机数。

代码语言:javascript
复制
int random_int(int min, int max) {
    return min + rand() % (max - min + 1)
}
票数 1
EN

Stack Overflow用户

发布于 2013-07-30 21:00:22

如果您正在查找矩阵中的所有唯一数字:

代码语言:javascript
复制
int used[30];
int count=0;

int check_used(int x)
{
int i;
for(i =0; i<count;i++)
    if(used[i] == x)
     return 1;

return 0;
}

int main()
{
    int r,i,j;
    int mat[5][6];

    srand (time(NULL));

    for (i=0;i<5;i++)
        for(j=0;j<6;j++)
        while(1)
        {
            r=rand()  % 31 + 10;
            if(!check_used(r))
            { mat[i][j]  = used[count++] =r;
              break;
            }
        }     
    return 0;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17947461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档