此外还意外的解决了另外一些以前遇到的问题,也是在调试代码时发现的,用此段代码可以用除了空格以外的字符作为分隔符,而且分隔符的长度也可以很长:如输入12qwertyuiop34asdfghjkl123,23zxc45 最后得到的数组为:a[0]=12,a[1]=34,a[2]=123,a[3]=23,a[4]=45 先贴上代码: 1#include<stdio.h>2#include<ct...
include<ctype.h> 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"math.h"void main(){ int i,sum=0;printf("请输入数据:\n");scanf("%d",&i);sum=i;while(getchar()!='\n'){ scanf("%d",&i);sum=sum+i;}printf("sum=%d",sum);}
k = 0; for(i = 0; i < 100; i ++) { printf("输入一个整数: "); scanf("%d", &integer[i]); if (integer[i] == 0) break; //当输入值为0,退出循环 k++; } for(i = 0; i <
你可以设定停止的条件,比如当输入是-1时停止 代码如下:int a[100],i;i=0;do{ scanf("%d",&a[i]);}while(a[i]!=-1);
如果连这个也无法确定,那就先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的内存空间,把前面申请的内存中的内容全部拷贝到新申请的内存中并把前面申请的空间释放。如此往复交替……...
C算法--数组中消失的数字和单身狗问题-异或,第一:消失的数字对于一个int数组其特点为:1.其元素个数为n2.每个元素的值为[0,n]之间(前闭后闭区间)3.元素的值没有重复,即0-n,这n+1个数字中的n个数字组成的数组1.1问题在时间复杂度为O(n)和空间复杂度为O(1)的条件下,找
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...