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