int number[cnt];为什么不行?数组不能是变量?
怎么修改?
用变量做数组的长度,应该是需要C99支持。
可以改为( int * number = (int *)malloc(sizeof(int)*cnt) )这样用函数malloc()动态分配一块内存来存储整数。
修改如下:
#include <stdio.h>
#include <stdlib.h>
int main(void){
int x;
double sum = 0;
int cnt;
printf("请输入数字的数量:");
scanf("%d",&cnt);
int * number = (int *)malloc(sizeof(int)*cnt);
int i=0;
if(cnt>0){
scanf("%d",&x);
while(x!=-1){
number[i]=x;
sum+=x;
i++;
scanf("%d",&x);
}
}
for(i=0;i<cnt;i++){
printf("%d ",number[i]);
}
return 0;
}