数组中存储不定个数的元素
现在有这样一个问题:
首先定义一个大小为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]);
}
}
得到的结果如下所示:
当然,这种方法可能不是很好,在这里,非常感谢大家提供更好的解决办法,谢谢!
浙公网安备 33010602011771号