|  | 
 
 发表于 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;
}
 这样,你就可以正确地输出你想要的结果了。
 | 
 |