[英]Fixed size array not fixed
我正在使用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;
}
for(i=1; i<numarray[N]; i++)
您正在遍歷錯誤的值。
numarray[N]
的值(這只是數組中的值,並且在這種情況下是未定義的,因為它在數組末尾為1)時,您將停止。 我懷疑您想這樣做:
for(i = 0; i < N; i++)
在這行代碼中:
for(i=1; i<numarray[N]; i++)
numarray[N]
是未初始化的變量,因此它具有未知值。 它可以是零,也可以是60,000。
結果是您的循環運行的迭代次數未知。
您實際上是要讓for循環索引終止於numarray [N]而不是N嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.