6个回答
展开全部
方法一:每输入一次,都询问是否继续输入
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;
}
方法很多,依据不用程序的不同任务可以有不同的办法。
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;
}
方法很多,依据不用程序的不同任务可以有不同的办法。
展开全部
通常所在函数形参的时候会涉及到长度的处理。
常见处理方法有2个:
1、指定接受长度。形参用两个参数,第一个参数为指向字符串的指针,第二个参数为字符串的长度。
例子:
Get_String(stringbuf[],num).
2、用特殊的结束符,比如\r\n为结尾符号
例如:
while(1)
{
if((stringbuf[i] == '\r') && (stringbuf[i] == '\n'))
{
break;
}
else
{
//user code
}
i ++;
}
常见处理方法有2个:
1、指定接受长度。形参用两个参数,第一个参数为指向字符串的指针,第二个参数为字符串的长度。
例子:
Get_String(stringbuf[],num).
2、用特殊的结束符,比如\r\n为结尾符号
例如:
while(1)
{
if((stringbuf[i] == '\r') && (stringbuf[i] == '\n'))
{
break;
}
else
{
//user code
}
i ++;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(int i=0;i<1000;i++)输入a[i]不就行了吗
另外,c语言的函数库定义了一个符号EOF,end of fail,文件结束符,可以用这个进行判断。在vc++6.0上是按ctrl+z,在Linux下是按ctrl+D
另外,c语言的函数库定义了一个符号EOF,end of fail,文件结束符,可以用这个进行判断。在vc++6.0上是按ctrl+z,在Linux下是按ctrl+D
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
既然是未知长度,1000.万一还不够呢。
只要记录数组首地址即可。
int a[1000];
输入时如何知道什么时候结束?
相必你是想输入字符串,
关键是while(a[i] != '\0')
只要记录数组首地址即可。
int a[1000];
输入时如何知道什么时候结束?
相必你是想输入字符串,
关键是while(a[i] != '\0')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是想说在不知道数组长度的情况下输入,要防止输入越界是吧,你可以使用length=sizeof(a)/n来知道数组大小,如果是char型n=1;int型 n=4 ;short型 n=2 以此类推等等
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询