您的位置:

c语言未知数组个数如何结束,怎样定义数组未知个数

本文目录一览:

我做C语言算法题目时遇到了个问题,用数组实现输入未知数目的数,输入结束进行输出

如果你知道你输入的最大数目,就如楼上所说的方法最简单。

如果连这个也无法确定,那就先malloc一定大小的数组,输入时不断对已经输入的数据计数,如果超过了该数组的大小,就realloc更大的内存(翻倍即可),这也是C++中vector的实现机制。

实力代码:

int size=128,i=0;

int* arr=(int*)malloc(size*sizeof(int));

while(输入未结束){

输入a[i];

++i;

if(i=size){

size*=2;

arr=(int*)realloc(arr,size*sizeof(int));

}

}

C语言怎么让键盘输入数字到数组里,事先不知道要输入多少个数,按回车结束。

#includestdio.h

int main()

{

int i,n=0,a[999];

for(i=0;;i++)

{

scanf("%d",a[i]);

n++;        //计算输入个数

if(getchar()=='\n')break; //遇回车中断

}

for(i=0;in;i++)printf("%d ",a[i]);

printf("\n");

return 0;

}

在C语言编程中如何判断一个整数数组的到了结尾,以及数组的长度?

1、显式地传递数组长度,例如

void sot(int a[], int n)

2、隐含地传递数组长度

1)在数组前面存储元数据

例如存储长度n=255的字符串,可以使用长度为n+1的数组。数组的第一个元素存储字符串的长度,接着是字符串的内容。

2)使用特殊元素在数组尾部标记数组的结束

最典型的例子就是C语言使用以NUL('\0')字符结尾的字符数组表示字符串。使用NULL指针标记指针数组的结束也是比较常见的用法。

C语言中函数参数只有数组指针的情况下,是不能判断数组长度的。

C语言如何获得数组的长度?

总长度充溢单个的长度,即得数组的个数。

int len = sizeof(unStartString)/sizeof(unsigned int);

C语言问题,如何用指针指向未知长度的数组的末尾?

楼主,可以用指针解决,即让指针开始指向数组首地址,然后P++,直到遇到\0为止。

例子:

int a[20]={1,2,3,4}

int *p=a /*p指向数组a首地址*/

while(*p) /*这要有值,就为真,p不断往后指*/

++p;

--p; /*注意,p最后还会下移一位,指到了\0,向前一位就指到了末尾的值的了*/

不知道楼主满意否啊? 注意:用指针效率高。

C语言怎样判断二维数组结束?

可以用这样的方法来实现:

#includestdio.h

#includemath.h

int main()

{ char *a[]= {"22","33","44","The end"};

int i;

for(i=0; isizeof(a)/sizeof(a[0]);i++)

  printf("%s\n",a[i]);

return 0;

}

C语言 好几个一维的数组 如何结束输入

当读到EOF时结束

Windows采用Ctrl+Z产生一个EOF,*nix采用Ctrl+D产生一个EOF

文件末尾本来就是一个EOF