数组中存储不定个数的元素

      现在有这样一个问题:

     首先定义一个大小为20的整型数组,就好像这样-- int a[20], 之后,根据需要存储一定量的数到数组中(可以小于20个),要求是输入数字以空格为单位隔开,直到输入回车结束输入,并把数字存入数组中。

     示例:输入数据 1 2 9 8 7(\r),之后 a[0] = 1,a[1] = 2,a[2] = 9,a[3] = 8, a[4] = 7,其余初始化为0

     开始并没有很好的想法,后来一网友提供了一个思想,解决了问题,实例程序如下:

 

#include <stdio.h>

int main(int argc, char *argv[])
{
	int a[20] = {0};
	int i = 0 ;
	int value;
	char *er;
	while (1) {
		er = (char*)malloc(sizeof(char));
		scanf("%d", &value);
		a[i++] = value;
		scanf("%c", er);
		if(*er == 32)   /*空格的ASC码为32*/
			continue;
		else if (*er == 10){    /*回车的ASC码为10*/
			break;
		}
		free(er);
	}
	for(i = 0; i < 20; i++)
	{
		printf("输入的数:%d\n", a[i]);
	}
}


     得到的结果如下所示:

 


      当然,这种方法可能不是很好,在这里,非常感谢大家提供更好的解决办法,谢谢!

 

posted on 2013-09-09 19:33  you Richer  阅读(375)  评论(0编辑  收藏  举报