我正在使用SRand/Rand生成一个随机数组.数组大小取决于提示用户输入的数字.基本上,如果用户输入的大小为9,则数组应为9个数字.然后应使用带有参数的rand()填充此数组,以使数组值保持小于18.问题是,有时会生成随机大小的数组.也许每运行一次该程序的第4或第5次,该数组可能是12-14个数字.我无法看到我的代码出现问题.我在下面添加了一个片段.有人对此有所了解吗?
int main(void)
{
int N;
int i;
printf("Please enter a number\n");
scanf("%d", &N);
srand (time(NULL));
int numarray[N];
for(i=1; i<numarray[N]; i++)
{
numarray[i]=rand()%21;
printf("%d\n", numarray[i]);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
for(i=1; i<numarray[N]; i++)
Run Code Online (Sandbox Code Playgroud)
你正在循环错误的值.
numarray[N]
(在数组中只是一个值,并且在这种情况下未定义,因为它是在数组结束之后的一个值)时,您将停止.我怀疑你想这样做:
for(i = 0; i < N; i++)
Run Code Online (Sandbox Code Playgroud)