C 生成随机数的新方法

C 生成随机数的新方法,c,arrays,random,C,Arrays,Random,我试着找出6个数字,第一个是10-100,另外五个是1-10 我读到的关于生成新数字的文章对我来说有点复杂,所以我提出了一种新的简单方法,获得这些数字的一系列重复,然后将它们放入二维数组中,然后我使用rand作为第一个数组参数的索引,这样我就可以找到随机数,但我有一个问题..我想把在数组中生成的数字,因为我想稍后使用它们 如果你能用一种简单的方式解释,我将不胜感激 include<sys/time.h> #include<stdio.h> #include<stdi

我试着找出6个数字,第一个是10-100,另外五个是1-10 我读到的关于生成新数字的文章对我来说有点复杂,所以我提出了一种新的简单方法,获得这些数字的一系列重复,然后将它们放入二维数组中,然后我使用rand作为第一个数组参数的索引,这样我就可以找到随机数,但我有一个问题..我想把在数组中生成的数字,因为我想稍后使用它们

如果你能用一种简单的方式解释,我将不胜感激

include<sys/time.h>
#include<stdio.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h> 
#include<ctime>
#define max 1000

int main()
{    
    int o, gr1num1[max][1] ,n=6,q[max] ,i = 0, gr2num5[max][5];

    while(1)
    {       
        i++;
        gr2num5[i][4] = rand() % 10+1 ;
        if(i == 1000)
            break;
    }

    if (gr2num5 [i][4]!=0) 
        srand(time(NULL));

    printf("\ngroup 2 numbers %d  ",gr2num5 [rand()%500][4]);
    printf("\ngroup 2 numbers %d  ",gr2num5 [rand()%500][4]);
    printf("\ngroup 2 numbers %d  ",gr2num5 [rand()%500][4]);
    printf("\ngroup 2 numbers %d  ",gr2num5 [rand()%500][4]);
    printf("\ngroup 2 numbers %d  ",gr2num5 [rand()%500][4]);

    printf("   \n\n\n /// %d /// ",o);

    while(1)
    {       
        i++;
        gr1num1[i][1] = rand() % 100+10;
        if(i == 1000)
            break;
    }

    printf("group 1 number %d",gr1num1 [rand()%500][1]);
}

首先,你应该回去重新阅读你关于C语言的书,了解如何在语法正确的情况下进行循环,因为你使用这些while循环的方式是不正确的

这是第一个while循环的外观。i的增量发生在循环的末尾,因为数组的索引从0开始

i=0;
while(i<max)
{
    gr2num5[i][4]= rand() % 10+1 ;
    i++;
}
但是您需要5个值,因此需要在彼此之间嵌套两个循环,以便像这样填充gr2num5数组

for(i=0;i<max;i++)
{
    for(j=0;j<5;j++)
    {
        gr2num5[i][j]=rand() % 10+1 ;
    }
}

注意:您将在i侧顶部定义j

解释。。。什么?如何将生成的号码放入arrayAsides:1:您应该在第一次使用rand之前调用srand。2定义最大1000后,您应该使用它,而不是ifi==1000。我将尝试使用它。您的第二个while循环将中断,因为您没有重置i=0;在它之前。这就是使用诸如ifi>=max之类的测试而不是ifi==max-来停止失控代码的原因。
for(i=0;i<max;i++)
{
    for(j=0;j<5;j++)
    {
        gr2num5[i][j]=rand() % 10+1 ;
    }
}