c++,输入一个未知大小的数组怎么做??? 要求有回答范例。。。

如题所述

如下参考:

1.首先,定义一个常量大小来控制数组的大小。

2.定义一个自定义函数度来输入二维数组中每个已知元素的值。

3.使用双循环,输入二维数组的值,如下图所示。

4.在主函数中,定义两个整数变量m和n,并保存数组的行和列。

5.接下来,定义一个二维数组,如下图所示。

6.输入数组的行数和列数,存储在变量m和n中。

7.然后,输入一个二维数组并将其保存为变量a。

8.最后,在计算权重时,输出一个二维数组。

9.运行程序,输入一个二维数组到计算机中,计算机将自动将其读入并输出。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-01

C++本身不支持未知大小的动态数组,你的需求通常有两种方法可以解决。

 

方法1:动态申请内存法

代码片段如下:

int *p,num;
cout<<"请输入你的数组大小";
cin>>num; //运行时得到了数组大小
p=new int[num]; //根据需求动态申请内存
//这里可以输入数组并干活了
delete []p; //释放内存

方法2:使用向量Vector

1)Vector是C++STL中提供的向量;

2)向量的大小可以动态改变;

3)向量可以通过下标访问元素(感觉像使用数组);

4)可以通过push_back向向量中添加元素并改变大小。

代码片段如下:

#include <vector> //文件包含
//......
vector <int> myArray;
//可以根据数据需求用 myArray.push_back(整数);来添加元素
//可以通过下标访问向量元素

第2个回答  推荐于2017-09-23
可以用vector容器。。
比如说输入一个大小未知的数组,当输入的数字为-1的时候停止输入。
然户把数组数输出……
代码如下。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int a;
vector<int>p;
while(cin>>a)
{
if(a==-1)
break;
p.push_back(a);
}

for(int i=0;i<p.size();i++)
cout<<p[i]<<' ';
cout<<endl;
}
=======================
具体的楼主可以去百度……本回答被提问者采纳
第3个回答  2011-12-24
数组必须是常量.知道什么叫常量吧?
不过你可以这样.char *ch =new char[i];这里的i可以是变量.但是也要是先确定的值.
还有你也可以作用C++的字符串,string 来接收一个数组.然后再使用这个字符串调用c_str函数将C++字符串换转为C字符串.最后去掉字符串末尾的'\0'就是一个数组了.
再有一个办法,自己写一个数组类并且重载[]下标.这个有点长就不帮你写了.
你先确定下你要的是哪种吧追问

知道常量、也知道用指针,但是i 的大小还是不知道。。。。
方法三、方法四都给我写一下吧~~谢谢~~
方法三我们学过 atoi ,但不知怎么用。。。。
非常感谢!

第4个回答  2011-12-24
动态分配数组空间