我是C启动者,刚刚学习编程的基础。当我练习编码时,我注意到意外输出有些奇怪,我不知道它的原因,甚至无法描述问题所在。C代码 - 为什么输出在我的代码中返回了意外的值?
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int main()
{
int numberEntered = 0;
int index = 0;
char input[32];
int TotalNum = 0;
int x = 1;
int array[x];
printf("Please enter the size of the array: ");
fgets(input,32,stdin);
x = atoi(input);
for(index =0; index < x; index++)
{
printf("\nPlease enter your number:");
fgets(input,32,stdin);
numberEntered = atoi(input);
printf("The number you entered is : %d\n",numberEntered);
array[index] = numberEntered;
TotalNum ++;
}
for(index = 0; index < TotalNum; index++)
{
printf("array[%d] = %d\n",index,array[index]);
}
return 0;
}
用户输入x = 15;然后用户输入1到15之间的数字; 输出是:
array[0] = 1
array[1] = 2
array[2] = 3
array[3] = 4
array[4] = 5
array[5] = 6
array[6] = 7
array[7] = 668977
array[8] = 9
array[9] = 10
array[10] = 11
array[11] = 12
array[12] = 13
array[13] = 14
array[14] = 15
我最初想到的是,阵列[7]应该给我阵列[7] = 8的输出,因为数字“8”是用户键入的内容。但是,它变成了随机数。我想知道原因。
'INT X = 1; int array [x];' - 当你创建它时,你的数组有多大?稍后改变'x'不会让你的数组神奇地成长。 –