c语言是不支持可变数组的,c要求定义数组时,在编译前要已知其大小,但你这种是运行时才知大小。如果用c写,可以定义一个指针,用malloc申请内存来达到类似的效果。
或者使用c++,它支持可变数组
下面说个用c的方法
#include <stdio.h>
#include <stdlib.h>
int main() {
int size;
printf("请输入数组的大小: ");
scanf("%d", &size);
// 使用malloc动态分配内存
int *array = (int *)malloc(size * sizeof(int));
if (array == NULL) {
printf("内存分配失败!\n");
return 1;
}
// 用户可以向数组中输入数据
printf("请输入数组的元素(输入0结束):\n");
int element;
while (1) {
scanf("%d", &element);
if (element == 0) {
break;
}
array[size - 1] = element; // 将元素添加到数组的末尾
size--; // 数组大小减一,因为下一个元素将覆盖当前最后一个元素
}
// 打印数组中的元素
printf("数组中的元素:\n");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
printf("\n");
// 释放内存
free(array);
return 0;
}