❶ c语言,输入一个长度不定的整型数组(1000位以内),我要怎么知道该数组的长度。
一般有两种方式。
1 第一个输入为数组长度。 比如输入 3 12 45 87
2 以内特定输入为结容束标记, 比如 以0,-1或者EOF作为结束标记。或者整行输入,以换行符为结束标记。
一般来说,在自动判题系统中,以EOF为结束, 或先输入长度, 是最为常见的两种方式。
❷ 怎样求整型数组的长度
//该函数为求字符串长度的函数,规定字符串结尾为0x0,即NULL
//而你是求整形数组的长回度,这个你用sizeof(La)/sizeof(List)即可答求出来,
//注意:因为sizeof是编译器预处理,编译器不同可能会造成求出的结果为指针长度和数组长度两种情况,vc下是数组长度
int Listlength(List *L){
int count=0;
List p=L;
while (p!=NULL)
{count++;
p++;}
return count;
}
❸ C中怎样整形数组的长度
c语言复中,定义数组后可以制用sizeof命令获得数组的长度(可容纳元素个数)
如:
{
int data[4];
int length;
length=sizeof(data)/sizeof(data[0]); //数组占内存总空间,除以单个元素占内存空间大小
printf("length of data[4]=%d", length ); //输出length of data[4]=4
}
❹ C语言:数组长度不够大,怎么办
如果是局部数组,可能是堆栈溢出,如果是全局数组,可能是编译器限制。
你用malloc吧,申请到25万的内存,赋给一个指针就可以了
❺ 如何用c定义一个未知长度的整型数组a[n]
如果你复永远不知道数组的制长度,那么这样的数组没有什么实际意义,就不必要定义,当然也没有办法定义。
如果你总是要知道长度的,那就在知道长度后用动态内存分配函数malloc()来为它分配内存。当数组的长度要发生变化时你可以重新为它分配内存,把数组拷贝过来,而把原先分配的内存归还给系统……
使用链表也能解决你的问题。
❻ c++ 怎么取整形数组的长度
一般情况用sizeof运算符,
比如一个叫array名字的数组:
int
len
=
sizeof(array)/sizeof(array[0]);
len
就保存了array的数组长度。
另外,如果数专组是引用传属递可以通过函数模板的实参推断来自动获得它长度,代码如下:
//连续打印一个数组的元素到控制台
template
<typename
T,
int
N>
void
print(T
(&arr)[N])
{
for
(int
i=0;
i<N;
++i){
cout
<<
arr[i];
}
}
//示例
int
main()
{
int
arrays[]
=
{1,2,3,4,5};
print(arrays);
return
0;
}
❼ 如何一次性算出整形数组的实际长度
整型数组长度就是固定的,预先指定的。没有求长度的操作。至于你指定的情况,是可以用vector数据结构来处理的。
❽ 求助了,关于编程的,如何输入一个任意长度的整形数组
假定用 c 语言。假定输入整型值,直到输入 数值 0 为止。
用动态分配。用 realloc 不断增加 内存分配。完整程序如下:
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int input,n;
int count = 0;
int* numbers = NULL;
int* more_numbers = NULL;
do {
printf ("Enter an integer value (0 to end): ");
scanf ("%d", &input);
count++;
more_numbers = (int*) realloc (numbers, count * sizeof(int));
if (more_numbers!=NULL) {
numbers=more_numbers;
numbers[count-1]=input;
}
else {
free (numbers);
puts ("Error (re)allocating memory");
exit (1);
}
} while (input!=0);
printf ("Numbers entered: ");
for (n=0;n<count;n++) printf ("%d ",numbers[n]);
free (numbers);
return 0;
}
❾ 求整型数组长度的问题~·~
#include <stdio.h>
typedef int List;
int Listlength(List *L) {
int count = 0;
List *p = L;
while (p != NULL) {
count++;
p++;
}
return count;
}//求数组L的长度复制
int main() {
List La[] = { 1, 3, 6, 8, 9, 15}, i;
i = Listlength(La);
printf("%d", i);
}
首先,可以让你编译通过。
其次,你的思路是错的。
求数组长度 是 sizeof(La)/sizeof(List)
错误理由,p!=NULL是无法判断正确的,当p指向数组外时,p还是一个有效的地址,不可能为NULL。所以无法实现。
❿ C语言:数组长度不够大,怎么办
定义为全局数组就可以解决这个问题
即把数组定义 int list[250000]放到int main前面