|
|
发表于 2023-11-9 22:15:15
|
显示全部楼层
问题出在你的代码中。在C语言中,变量长度为0的数组是不允许的。你在声明数组 hs 时使用了变量 x 来指定数组的长度,这是不合法的。
要解决这个问题,你可以使用动态内存分配来创建一个具有指定长度的数组。你可以使用 malloc 函数来动态分配内存,并使用 free 函数来释放内存。
下面是修正后的代码:
- #include <stdio.h>
- #include <stdlib.h>
- int main() {
- int x;
- scanf("%d", &x);
- int *hs = (int*)malloc(x * sizeof(int)); // 动态分配内存
- int a;
- printf("偶数:\n");
- for (a = 0; a < x; a++) {
- if (a % 2 == 0) {
- hs[a] = a;
- printf("%d\t", hs[a]);
- }
- }
- printf("\n");
- for (a = 0; a < x; a++) {
- printf("%d\t", hs[a]);
- }
- free(hs); // 释放内存
- return 0;
- }
复制代码
这样,你就可以正确地输出你想要的结果了。 |
|