如题所述
方法一:每输入一次,都询问是否继续输入
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;
}
方法很多,依据不用程序的不同任务可以有不同的办法。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2010-05-25
晕 你也是这个问题啊 ....
我也正在犯愁呢...
看看上面悬赏5分的那个问题...
我的....
悲剧了
采纳我把...hha
我也正在犯愁呢...
看看上面悬赏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 // 输出
_ // 光标在这里.本回答被提问者采纳
增加分配 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 // 输出
_ // 光标在这里.本回答被提问者采纳