c语言输入一行未知个数数字存入数组 一直有个疑问输入一行数字存入数组时若不知道数字的个数怎么办,最容易想到的办法就是接收字符然后转化为数字,但这样太过麻烦。 今天上网查了下,说可以用ungetc()函数将字符送回输入流,在这里总结归纳一下 此外还意外的解决了另外一些以前遇到的问题,也是在调试代码时发现的,用此...
int main(){ int a[1000];char c;int i=0;int n=0;while((c=getchar())!='\n'){ if(isdigit(c)){ ungetc(c,stdin);//将c送回输入流 scanf("%d",&a[n++]);} } for(i=0;i<n;i++){ printf("%d",a);} return 0;} ...
为了将未知数量的整数从键盘输入存储到数组中,可以采用动态分配内存的方法。这种方法能灵活处理不同数量的输入,而无需预先确定数组的大小。下面是一个示例代码:include int main() { int *a, i = 0, num;printf("请输入数据,中间用空格间隔,用回车结束输入:\n");a = (int *)malloc(1 *...
k = 0; for(i = 0; i < 100; i ++) { printf("输入一个整数: "); scanf("%d", &integer[i]); if (integer[i] == 0) break; //当输入值为0,退出循环 k++; } for(i = 0; i <
如果连这个也无法确定,那就先malloc一定大小的数组,输入时不断对已经输入的数据计数,如果超过了该数组的大小,就realloc更大的内存(翻倍即可),这也是C++中vector的实现机制。实力代码:int size=128,i=0;int* arr=(int*)malloc(size*sizeof(int));while(输入未结束){ 输入a[i];++i;if(i>...
C没有提供现成的办法,要自己写一段代码实现,具体是:先动态申请一块内存空间,比30字节,向其中输入数据,等到输入满时再申请另一块比30大20或30的内存空间,把前面申请的内存中的内容全部拷贝到新申请的内存中并把前面申请的空间释放。如此往复交替……...
h> void main(){ int a[50];int i=0,j=0;printf("请输入数据,中间用空格间隔,用回车结束输入:\n");do { scanf("%d",&a[i++]);}while(getchar()!='\n');for(j=0;j
1、可以预先定义足够大的数组(浪费在所难免),然后将键盘输入的整数存入数组,并累计数据个数。...int i,n = 0,a[1024]while(1) { printf("输入整数(q: 结束输入过程)%d : ", n + 1);if(scanf("",&a[n]) != 1) break;++n;} for(i = 0; i < n; ++i) printf("%d ",a...
c语言输入一行未知个数数字存入数组 转载https://www.cnblogs.com/wd1001/p/4826855.html 一直有个疑问输入一行数字存入数组时若不知道数字的个数怎么办,最容易想到的办法就是接收字符然后转化为数字,但这样太过麻烦。 今天上网查了下,说可以用ungetc()函数将字符送回输入流,在这里总结归纳一下...
c语⾔输⼊⼀⾏未知个数数字存⼊数组 ⼀直有个疑问输⼊⼀⾏数字存⼊数组时若不知道数字的个数怎么办,最容易想到的办法就是接收字符然后转化为数字,但这样太过⿇烦。今天上⽹查了下,说可以⽤ungetc()函数将字符送回输⼊流,在这⾥总结归纳⼀下 此外还意外的解决了另外⼀些以前遇到...