c语言中如何输入一个没有长度的数组

如题所述

方法一:每输入一次,都询问是否继续输入
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;
}
方法很多,依据不用程序的不同任务可以有不同的办法。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-25
晕 你也是这个问题啊 ....
我也正在犯愁呢...
看看上面悬赏5分的那个问题...
我的....
悲剧了
采纳我把...hha
第2个回答  2010-05-24
动态分配数组 malloc
增加分配 realloc
--------------------------------
#include "stdio.h"

int main(void)
{
int *x;
int n=0;
x = (int *) malloc(sizeof(int));
while(1)
{
scanf("%d",&x[n]); printf("n=%d value=%d\n",n+1,x[n]);
n++;
x = (int *) realloc(x,sizeof(int) * (n+1));
}
getch();
return 0;
}
===============
打入:
12 34 56
n=1 value=12 // 输出
n=2 value=34 // 输出
n=3 value=56 // 输出
78 90
n=4 value=78 // 输出
n=5 value=90 // 输出
_ // 光标在这里.本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网