C语言中如何控制未知长度的数组的输入

比如说先定义inta[1000];输入时如何知道什么时候结束... 比如说先定义
int a[1000];
输入时如何知道什么时候结束
展开
 我来答
qicaiwuya
2011-12-14 · TA获得超过4212个赞
知道小有建树答主
回答量:1462
采纳率:100%
帮助的人:1215万
展开全部
方法一:每输入一次,都询问是否继续输入
while(1)
{
scanf("%d",&a[i]);
printf("是否继续?(Y/N)");
c=getchar();
if(c=='Y'||c=='y')continue;
else break;
}
这种方法比较笨
方法二:规定输入的范围,例如要输入的是正整数,那么可以检测输入的是否合法,如果输入了负数就结束循环
while(scanf("%d",&a[i])==1&&a[i]>0)
{
continue;
}
方法很多,依据不用程序的不同任务可以有不同的办法。
dsoyy
推荐于2017-09-21 · TA获得超过723个赞
知道小有建树答主
回答量:1054
采纳率:50%
帮助的人:557万
展开全部
通常所在函数形参的时候会涉及到长度的处理。
常见处理方法有2个:

1、指定接受长度。形参用两个参数,第一个参数为指向字符串的指针,第二个参数为字符串的长度。
例子:
Get_String(stringbuf[],num).
2、用特殊的结束符,比如\r\n为结尾符号
例如:
while(1)
{
if((stringbuf[i] == '\r') && (stringbuf[i] == '\n'))
{
break;

}
else
{
//user code

}
i ++;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丶下里巴人
推荐于2017-09-17 · TA获得超过1660个赞
知道小有建树答主
回答量:334
采纳率:50%
帮助的人:452万
展开全部
for(int i=0;i<1000;i++)输入a[i]不就行了吗
另外,c语言的函数库定义了一个符号EOF,end of fail,文件结束符,可以用这个进行判断。在vc++6.0上是按ctrl+z,在Linux下是按ctrl+D
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cool_zbk
2011-12-14 · TA获得超过282个赞
知道答主
回答量:226
采纳率:50%
帮助的人:143万
展开全部
既然是未知长度,1000.万一还不够呢。
只要记录数组首地址即可。

int a[1000];
输入时如何知道什么时候结束?

相必你是想输入字符串,
关键是while(a[i] != '\0')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gyzx090223
2011-12-14
知道答主
回答量:1
采纳率:0%
帮助的人:1679
展开全部
你是想说在不知道数组长度的情况下输入,要防止输入越界是吧,你可以使用length=sizeof(a)/n来知道数组大小,如果是char型n=1;int型 n=4 ;short型 n=2 以此类推等等
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式