c语言数组动态赋值
for(i=0i<5;i++)scanf("%d",&a[i]);请问为什么这个一定要输满5个才能返回,书上不是说如果不赋初值就自动初始化为0吗,那我就给前...
for(i=0i<5;i++)scanf("%d",&a[i]);请问为什么这个一定要输满5个才能返回,书上不是说如果不赋初值就自动初始化为0吗,那我就给前面2个赋了初值,后面的不想赋初值,为什么想返回不能返回
展开
展开全部
因为你写的有for循环啊 for(i=0 ;i<5;i++) 你输入两个后循环还没有退出,又执行输入语句 scanf("%d",&a[i]); 所以你必须得输入啊,要不程序一直停这,没法向下运行
如果你想输入任意个数 给你一段程序:
i=0;
printf("输入数据,回车结束\n");
do
{
scanf("%d",&a[i]);
i++;
c=getchar();
if(c=='\n')
break;
}
while(1);
如果你想输入任意个数 给你一段程序:
i=0;
printf("输入数据,回车结束\n");
do
{
scanf("%d",&a[i]);
i++;
c=getchar();
if(c=='\n')
break;
}
while(1);
展开全部
因为for循环没有执行完毕,你也没有设置跳出点,所以不能跳出
你也知道问题是动态数组赋值
所以一般不这样赋值,一般
char array[10];
char *p = array[10];
gets(p);
你也知道问题是动态数组赋值
所以一般不这样赋值,一般
char array[10];
char *p = array[10];
gets(p);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是个循环结构,一共要循环5次。所以一定要输满5个值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询