如何在C++中实现用一个键盘输入值定义数组内包含的元素个数?

例如输入5,数组中包含5个元素

//可以使用动态分配空间,使用new和delete关键字。
//例如,定义一个动态的int类型的数组
#include<iostream>
using namespace std;
int main()
{
int *p;
int n;
cin>>n; //输入元素的个数。
p = new int[n]; //分配n个元素的一维整型数组的空间。
int i;
for(i=0;i<n;i++) //给数组元素赋值
p[i]=i+1;
for(i=0;i<n;i++) //输出数组元素
cout<<p[i]<<" ";
delete []p; //删除分配的空间。
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-30
用动态数组

#include <iostream.h>

int main()
{
const int a=5;
int b[a]; //,a是个常变量(只读变量)定义普通数组是必须给以它长度,否则编译出错

for(int i=0;i<a;++i)
cin>>b[i];

int c;
int *p=new int[c];//建立动态数组,c是一个变量 ,是可以改变的
cout<<"输入变量c的值 \n";
for(int k=0;k<c;++k)
cin>>p[k];

for(int j=0;j<c;++j)
cout<<p[j]<<" ";
delete[] p;
return 0;
}追问

你好,我在用你的代码调试的时候,平台显示那个动态数组中的"c"未初始化,然后程序运行到那个位置就被迫中断了~希望你能够进一步帮助解惑~

第2个回答  2015-09-09
#include <iostream>
using namespace std;
int main()
{
int *a;
int i,n;
cout<<"please enter array size:" <<endl ;
cin >> n; // 数组大小
a = (int *) malloc(sizeof(int) * n); // 分配
cout<<"please enter " << n << " numbers:" <<endl ;
for (i=0;i<n;i++)
{
cin >> a[i]; // 键盘输入 n 个数
}
for (i=0;i<n;i++) cout << a[i] << " ";
cout << endl;
return 0;
}
输入例子:
please enter array size:
5
please enter 5 numbers:
12 34 56 888 999
第3个回答  2011-11-30
动态开辟数组空间
int i,j=0;
cin>>i;
int*p;
p=new int[i];

下面是一个简单的例子
#include <iostream>
using namespace std;
int main ()
{
int i,j=0;
cin>>i;
int*p;
p=new int[i];
for (j=0;j<i;j++)
{
p[j]=j;
}
for (j=0;j<i;j++)
{
cout<<p[j]<<endl;
}
delete p;
return 0;
}本回答被提问者采纳
第4个回答  2011-11-30
这个好像不能这么做,内存申请的时候必须是固定的,而你的说法是申请是这个内存空间之是不固定的,这样是不符合定义标准的

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网