如何在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
这个好像不能这么做,内存申请的时候必须是固定的,而你的说法是申请是这个内存空间之是不固定的,这样是不符合定义标准的

如何在C++中实现用一个键盘输入值定义数组内包含的元素个数?
\/\/可以使用动态分配空间,使用new和delete关键字。\\x0d\\x0a\/\/例如,定义一个动态的int类型的数组\\x0d\\x0a#include\\x0d\\x0ausing namespace std;\\x0d\\x0aint main()\\x0d\\x0a{\\x0d\\x0a int *p;\\x0d\\x0a int n;\\x0d\\x0a cin>>n; \/\/输入元素的个数。\\x0d\\x0a p = new int[...

c++中怎样用键盘输入一个数确定数组的大小?比如我输入一个n=5,再...
标准C++版本:include <iostream>#include <vector>using namespace std;int getArrayLength(void){cout << "请输入数组长度:" << endl;int arrayLength = 0;cin >> arrayLength;return arrayLength;}void printVector(const vector<int>& arr){for (auto i = 0; i < arr.size(); ++i){...

c++,定义数组,并通过键盘输入数组的值,怎么做??
在程序中经常要根据用户输入新建数组。但是c语言中不允许非常量成为新建数组时表示大小的下标:for example:int line;int col;scanf("%d,%d",&line,&col);int p[line][col];\/\/这样是不允许的!!!正确的做法是:p = (int *)malloc(sizeof(int)*line*col);访问或者写入数据时:(p + line...

C++中怎样将输入的一个数,作为一个数组的个数
如果能预估i的大小最好是预估i能达到的最大值 设i的最大值为i_max 那就可以 int a[i_max];int i;以后就把a当你想象的a[i]用 只不过要记录数组的有效长度i 当然楼上说的方法也行 只是运行起来那样会慢点 在很多acm的题目中都采用我说的这个方法 ...

C\\C++语言如何定义数组数组长度由键盘输入
C\\C++本身不支持动态数组,但是可以通过动态申请内存实现由键盘输入长度的方式确定数组长度。实现代码如下:int num;cout<<“请输入数组大小”;cin>>num;int *p=new int[num];\/\/这里就可以使用这个动态数组了。delete []p; \/\/不用的时候务必自己删除内存 ...

请问在C语言里如何将一个数组元素的个数设为输入的值?
C\/C++ 语言里, 声明 数组大小时,只允许用常数,例如:int a[10];int b[5*4*3];不允许用 变量。如何将一个数组元素的个数设为输入的值呢,一般用动态分配。int *a; \/\/ 声明为指针。知道大小n后, 用动态分配:a = (int *) malloc(sizeof(int) * n);接下来就可以 把 a 看成 你...

C++如何实现输入数组的个数,然后建立这个数量的数组?
代码如下:include <iostream>using namespace std;int main(){ int n; cout << "请输入数组元素个数"; cin >> n; \/\/ 建立数组 int *arr = new int[n]; \/\/ 赋值 for (int i = 0; i < n; i++) arr[i] = i; \/\/ 输出 for (int i = 0; ...

c++中怎么获取数组中元素的个数
C++中数组可分为堆区的数组和栈区的数组,对于两种数组C++都没有函数可以直接获取数组的元素的个数。一、堆区的数组 堆区的数组是自己申请的,比如用new申请空间:int* arr = new int[10];堆区的数组不能计算出包含元素个数。二、栈区的数组 栈区的数组是系统自动分配的,如:[cpp] view plain...

C++ 如何获得一个数组中 有多少个数
一个数组x[]中 有多少个元素:int x[]={1,2,3,4,5,6,7,8,9,10};n = sizeof(x) \/ sizeof(int);=== 控制台输入 2 5 6 7回车 输出结果4(输入了4个数) ,用下法:include <stdio.h> int main(){ int x[]={1,2,3,4,5,6,7,8,9,10};int i, n,c;n = sizeof(...

C++如何给数组赋值,就是从键盘上输入n个数,n不确定
用动态数组吧 int i,n;int *p;scanf("%d",&n)p=(int *)malloc(n*sizeof(int));for(i=0;i<n;i++)scanf("%d",p+i);

相似回答