我不明白我在哪里收到错误。我相信它是在用户输入菜单中的一个选项的最后部分。
int main()
{
int i,j; /* counter variables */
int size; /* array size */
double data[size]; /* array variable */
int o; /* response variable */
printf("\nHow many numbers do you have in your data set?\n"); /* initial instructions */
scanf("%d",&size); /* */
printf("\nPlease enter those numbers.\n"); /* data set */
for(i=0;i<size;i++){ /* loop to correspond a data point to an element */
scanf("%lf",&data[i]); /* */
}
/* menu system */
printf("\nNow, please select the following operations:"); /* intro */
printf(" . . . "); /* the menu choices */
....
这就是我认为我的问题所在。但我不知道为什么它会出现错误。语法是对的吗?
scanf("%d",&o); /* */
if(o==1){ /* Displaying the data set*/
for(j=0;j<size;j++){ /* loop to display each element of the array*/
printf("\n%g,",data[j]); /* displaying the array */
}
}
return 0;
}
答案 0 :(得分:6)
int size; /* array size */
double data[size]; /* array variable */
这是问题 - size
未初始化,data
数组的大小是随机的。
您应首先阅读用户的size
,然后使用malloc
动态创建数组。类似的东西:
scanf("%d",&size);
//...
double* data = (double*)malloc( size * sizeof( double ) );
// NOTE: don't forget the `free` this memory later
答案 1 :(得分:0)
您必须为数组指定最大尺寸:
#define MAX 100 // Immediately after #include ...
double data[SIZE];
然后创建要由用户初始化的新变量:
int newSize = 0;
scanf("%d", &newSize);
现在,数组的新大小为newSize
变量值