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

      现在有这样一个问题:

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

     示例:输入数据 1 2 9 8 7( ),之后 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
", a[i]);
	}
}


     得到的结果如下所示:


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

原文地址:https://www.cnblogs.com/riskyer/p/3310555.html