随风_233 2020-01-31 11:17 采纳率: 100%
浏览 340
已采纳

C语言:整型值N在for循环前为输入值,在经过for循环后锁定为4,问各位大佬是何原因?(若改为a[i] = i + 2, 则N变为6,也不知为何)

int main(void)
{
int N = 0;
int a[N];
int flag;
int i;

while(1)
{
    printf("Please input the scale of array:\n");
    flag = scanf("%d", &N);
    fflush(stdin);
    **printf("for循环前:N=%d\n", N);
    for( i = 0; i < N ; i++)
        a[i] = i ;
    printf("for循环后:N=%d\n", N);**

    if(!flag)
        break;

    putchar('\n');

}


return 0;

}

  • 写回答

2条回答 默认 最新

  • Kim_小星兴 2020-01-31 11:23
    关注
    int N = 0;
    int a[N];
    

    竟然不会报错?

    定制数组 只能是常量,不能是变量;

    最浅显的办法: 把 int a[N];改成int a[6]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?