【发布时间】:2016-12-16 14:42:18
【问题描述】:
我是 C++ 的初学者,老实说,我不知道如何解决一项任务。 我必须使用二维数组创建一个矩阵。它的大小应该取决于用户的输入(它应该类似于...int matrix[m][n],其中 m 和 n 是用户输入的数字)。然后我应该用 0 到 100 的随机数填充它并打印它。嗯,我能应付。 当我必须创建一个从该数组的行中查找最大数字的函数时,问题就开始了。该函数的唯一参数可以是用户输入的行数(例如 int function(int i))。 问题是——如何在多个函数中使用同一个数组?考虑到我是新手,有什么办法可以做到这一点? 或者任务的形成不正确? 对不起,很长的帖子,并提前感谢 PS有人要代码,所以这里是:
#include <iostream>
#include <cstdlib>
using namespace std;
int function1(int i)
{
//this is one of the functions I'm supposed to create-I described it earlier
}
int main()
{
int m,n;
cout<<"Matrix's size will be m rows and n columns. Please write m and n"<<endl;
cin>>m>>n;
int A[m][n];
int a,b;
for (a=0;a<m;a++)
{
for (b=0;b<n;b++)
{
A[a][b]=rand()%(100+1);
cout<<A[a][b]<<" ";
}
cout<<"\n";
}
}
编辑:我要感谢大家的帮助。我问过我的老师,他终于回答了。如果您好奇,他告诉我们(我没听说过)定义一个类似 int[100][100] 或更高的数组,并且不允许用户输入任何更高的数字;)这不是最佳解决方案,但肯定是实用的。再次感谢!
【问题讨论】:
-
函数只有一个
int参数的要求听起来很随意。这真的有必要吗?如果是,则只能将矩阵设为全局,但最好将其作为函数参数传递 -
一定要用数组吗?
std::vector在这里可以很好地工作。 -
嗯,根据上面写的,它应该看起来像 int 函数(int i),所以我想它应该只有一个参数——我还应该创建切换所选列的函数在那里,我必须将它作为函数参数传递。但是,如果在运行程序之前它的大小未知,我怎样才能使矩阵全局化? :)
-
而且我必须使用数组,否则我肯定会使用 std::vector
-
如果不能使用 STL,这在 C++ 中会很混乱。那么最好使用 C,因为它有 VLA。
标签: c++ arrays multidimensional-array