用c++编写:在不知道数组长度的情况下,如何声明一个数组,并输入数组元素,然后得到数组长度?

如题所述

int arry[]={1,2,3,4,5};
int count=sizeof(arry)/4;//sizeof计算arry占用的内存长度,然后除以4是因为int占四个字节计算出来就是数组长度追问

我的意思是在不知道数组有几个元素的情况下去声明一个数组。

追答

对啊,我又没有一开始设定数组有几个元素int arry[]这里是空的

追问

你第一句int arry[]={1,2,3,4,5};这句不是已经声明数组arry里面有5个元素(1 2 3 4 5)了吗?

追答

那就用动态数组int *arry=new int[1];
你每次要加新元素进去就重新申请空间,把旧的拷贝到新的里面去在把旧的删掉就可以了

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-08
int x=1;
while(cin>>a[x])
{
if(getchar()=='\n')break;
x++;
}
这里x就是长度了追问

但是上面那个数组a[]创建不了啊,要先声明后使用啊。

第2个回答  2012-04-08
用动态数组追问

创建动态数组的话好像也要在运行时输入数组长度,但是我想问的是完全不输入数组长度,只会输入一串数组元素的情况。谢谢。

在C++中如何在不知道一个数组具体大小的情况下声明一个数组?
第一种, 用宏定义。define N 20 int a[N];这个20是你自己可以改的。第二种,用动态定义 int *p = new Nsizeof(int);开辟了N个int型空间。能给分不

c++新建不知道长度的数组
这个可以用new 来进行定义数组长度未定的数组。写了个例子给你看:include<iostream> using namespace std;void main(){ int i;cout<<"请输入数组的长度"<<endl;cin>>i;int *p=new int[i]; \/\/定义长度为i的数组p for(int j=0;j<i;j++) \/\/给分配的数组进行赋值 p[j]=j;cout<<...

C++数组长度不知道的情况下如果想先设定一个长度较大的数组再赋值计数...
int main(){ int a[1000], n=0, i;for(n=0; n<1000; n++){ cin>>a[n];if(a[n]<0){ \/\/退出条件,最好是用不到的数值,要处理的是正数,那负数可以 break;} n++;} for(i=0; i<n; i++){ cout<<a[i]<< " " ;} cout<<endl;} ...

C++如何输入一个不知道长度的数组
while(scanf("%d",&a[i++])!=-1);

c++里怎么定义一个不知道大小的数组
c++里怎么定义一个不知道大小的数组 这个数组可能很大很大,所以不要说写个绝对大的数,但是这个数组的大小可以由前面的一个需要从键盘输入值的变量决定,如:intten,s,i;cout<<"输入一个十进制数:\\n";cin>>ten;s=log(te...这个数组可能很大很大,所以不要说写个绝对大的数,但是这个数组的大小可以由前面的一...

C++如何定义一个未知长度的数组
如果你的数组在运行过程中可以确定,比如你输入一个整数来确定数组长度,这样的话可以通过动态内存分配实现。比如:int a;cin>>a;int *b=new int[a];如果你的数组运行的时候都无法确定长度,比如你的数组可能会不断的添加新元素进去。这时候可以使用C++的标准库vector实现,比如:vector<int> array;...

c++中怎样声明数组
C++中声明数组跟C语言中是一样的。具体定义与使用方法可以参考如下程序段:int a[5]; \/\/ 定义一个含5个元素的int类型的数组 double b[5]={3.2, 3.5, 0.8, 8, 5,3}; \/\/ 定义一个含5个元素的double类型的数组并初始化 char c[] ="abcd"; \/\/ 定义一个字符数组,并初始...

如何在C++中定义一个不确定长度的数组
int n, *p;p=(int *)malloc(n*sizeof(int));用输入函数输入数组长度n,然后执行上面的动态分配,是指针p指向分配的数组起始地址

在C++中,如何对一个不确定大小的数组进行赋值?
int * a = new int[n];\/\/动态分配一个有n个数据的数组 while(n){ cout<<"输入数字"<<endl;cin>>x;a[i] = x;i++;n--;} \/* 自己的操作 *\/ delete[] a;\/\/这一句是必要的,释放内存 return 0;} \/\/vector的用法 include <iostream> include <vector> using namespace std;int...

C++中如何定义一个不知道长度的数组?求大神帮助
要定义一个不知道长度的数组是不可能的。。因为,“定义”是要在内存中开辟空间的。。假如说,你不知道要开辟多大的空间,系统怎么给你分配空间呢?? 不过,你可以实现动态分配空间。。比如:int len = 0;cin>>len;int *pointer = new int[len]; 首先要用户输入数组长度,然后再分配。这样就实现...

相似回答