c++中怎样用键盘输入一个数确定数组的大小? 比如我输入一个n=5,再根据n确定数组有5个数值。

c++中怎样用键盘输入一个数确定数组的大小?
比如我输入一个n=5,再根据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)
{
cout << "arrayInt[" << i << "]=" << arr[i] << endl;
}
}
int main(int , char**)
{
vector<int> arrayInt;
arrayInt.resize(getArrayLength());
printVector(arrayInt);

return 0;

}

数组的元素值为vector自动初始化成员的值(int的值为0)。

既然你对这个问题困惑,说明你不了解vector,那么下面就是“类C”的C++版,有时候这种版本也有适用的场景:

#include <iostream>
using namespace std;

int getArrayLength(void)
{
cout << "请输入数组长度:" << endl;
int arrayLength = 0;
cin >> arrayLength;

return arrayLength;
}

void printVector(const int* pArr, int arrLength)
{
for (auto i = 0; i < arrLength; ++i)
{
cout << "arrayInt[" << i << "]=" << pArr[i] << endl;
}
}
int main(int , char**)
{
int* pArrayInt = nullptr;
int length = getArrayLength();
pArrayInt = new int[length];//这里没有对数组长度做判断,请知晓
printVector(pArrayInt, length);
        delete[] pArrayInt;
return 0;

}

数组的元素为new出来的未被初始化的值

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-10-25
用new来分配空间追问

可以给个具体的例子吗?

追答

cin >> n;
int *a = new int[n];
......
delete [] a;

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

用C++编程编写一个程序 用键盘输入5整数到数组,求数组的最大值、平 ...
} cout<<"最大的数是:"<<max<<"平均数是:"<<sum\/5<<endl;}

关于如何输入一个数来任意确定数组大小
int n;std::cin >> n;int *a = new int[n];C语言中可以用malloc:int n;scanf("%d", &n);int *a = (int*)malloc(n * sizeof(int));要追加一点说明就是动态数组是存储在堆上的,用完了一定要释放内存,否则会造成内存泄露。释放内存的时候,malloc申请的内存free来释放,new申请的内存...

c++中整型数组如何用键盘输入呀?
有2种方法:1、你输一个,打一个空格 2、你输一个,按一下回车 这2种方法都能实现数据输入到数组中

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...

...如何定义一个数组,而这个数组的大小不确定,大小和数值由用户从键盘输...
先声明一个数组指针 然后根据需要动态分配存储空间 比如 int *a;int n;cin>>n; \/\/输入数组长度 a=new int(n); \/\/动态分配存储空间 \/\/下面就可以对数组a[] 进行赋值等操作了 ...\/\/最后别忘了用delete释放存储空间

如何在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++中如何输入一个数组
如果是由输入者决定要输入数组的长度的话,可以尝试如下的办法:\/\/根据输入生成相应长度的数组int i;cin>>i;int *p = new int[i];\/\/...\/\/你对这个数组p的输入与处理\/\/程序结束时别忘了销毁申请的空间delete []p;

C++问题:如何定义一个未知大小的一维数组,数组大小由输入的值决定
\/\/元素个数 cout<<"请输入数组的大小:";cin>>arraysize;int *array;\/\/用指针指向一个数组 array=new int[arraysize]; \/\/动态内存分配 ...delete []array;\/\/最后要释放这个空间,是一组空间所以加了[]。array=new int[arraysize];new表示申请空间;什么类型?int;多大?arraysize ...

相似回答