night_152
随风_233
采纳率100%
2020-01-31 11:17

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;

}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • qq_39575645 Kim_小星兴 1年前
    int N = 0;
    int a[N];
    

    竟然不会报错?

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

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

    点赞 评论 复制链接分享

相关推荐