开发者社区 问答 正文

为什么这个程序还是无法运行

#include 
int main()
{
int i,j,m,n;
//char a[m][n];
printf("请输入行和列:\n");
scanf("%d,%d",&i,&j);
printf("\n");
char a[i][j];
for(m=0;m<i;m++)
{
if(m==0||m==i-1)
for(n=0;n<j;n++)
a[m][n]='*';
else 
for(n=0;n<j;n++)
{
if(n==0||n==j-1)
{
a[m][0]='*';
a[m][j-1]='*';
}
else a[m][n]=' ';
}
for(m=0;m<i;m++)
{
for(n=0;n<j;n++)
printf("%c",a[m][n]);
printf("\n");
}
}
return 0;
}

展开
收起
a123456678 2016-03-20 11:44:42 1917 分享 版权
1 条回答
写回答
取消 提交回答
  • 数组大小必须是常量,所谓常量,就是编译器能从你代码中直接确定大小。
    和放在输入前输入后没关系。你的代码还是要运行的时候才能知道大小。
    那么只能动态分配,用new。

    2019-07-17 19:09:20
    赞同 展开评论
问答分类:
问答地址: