C语言数组输入输出问题 定义一个数组 输入不定个数的数字 怎么弄 输出怎么输出 循

C语言数组输入输出问题 定义一个数组 输入不定个数的数字 怎么弄 输出怎么输出 循环需要的条件是什么

如果限制于C语言的话。那么就不是很方便了。

但是是有方法的:有叫malloc,realloc的函数,在头文件<stdlib.h>或者<malloc.h>里面(看编译器)。

给你一个我写的代码。你看着怎么用。可以输入任意数量的int型数字,然后直接输出。

测试平台:Devc++

输入:20 10 50 30 ctrl+z(键盘ctrl键,表示输入结束,结束符) 

输出:20 10 50 30

输入:20 10 50 30 50 50 50 ctrl+z(键盘ctrl键,表示输入结束,结束符) 

输出:20 10 50 30 50 50 50

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
int main(){
int a,j,i=0;//输入数字暂时存放的地方,j后面输出的时候要用,i记录存入了几个数字 
int *stack=(int *)malloc(1*sizeof(int));//数组*stack,malloc(size)是申请一个空间 
while(scanf("%d",&a)!=EOF){//如果输入的不是EOF结束 
stack[i]=a;//放到数组里面 
i++;//记录++ 
stack=(int *)realloc(stack,sizeof(int));//realloc(address,size)向address上面追加size个空间 
}
for(j=0;j<i;j++){
printf("%d\n",stack[j]);

return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-15
个数再不定也有个上限,比如最多输入10个数字,就可以定义int a[10];
或者用链表动态分配内存,将节点创建、赋值封装成一个函数,然后每需要输入一个数据就调用一次函数。

输出是需要注意的是循环变量循环次数及方向(如果输出用a[n],而循环计数变量用i则只需要考虑循环次数)。追问

如果是a[10] 然后只输入五个数或者六个数或者七个数呢 然后把他们怎么输出 循环终结条件是什么

追答

可以用计数变量(int n = 0),每存入一个数 n++,最后n值就是存入数据个数;输出也是从a[0]到a[n-1] 。

for(i = 0 ; i < n ; i++)
printf("%d",a[i]) ;