简单来说,我们在定义一个二维数组的时候,必须告诉它一个行和列,所以必须先把数组的行数和列数定义的足够大,才能把所有的元素包含进来。
比如说我们先把这个数组先定义为一个100*100的数组,然后我们再输入实际的行数、列数和输入的元素。通过以下的代码就能实现任意行数和列数的二维数组。
#include<iostream>
using namespace std;
//获得数组的元素
void getarray(int row,int column,int array[100][100])
{for(int i=0;i<row;i++){
for(int j=0;j<column;j++){
cin>>array[i][j];}}
}
//显示输入的数组
void showarray(int row,int column,int array[100][100]){
cout<<"输入的矩阵为:"<<endl;
for(int i=0;i<row;i++){
for(int j=0;j<column;j++){
cout<<array[i][j]<<" ";}
cout<<endl;
}
}
int main(){int row,column,array[100][100];
cout<<"行数为:";cin>>row;cout<<endl;
cout<<"列数为:";cin>>column;cout<<endl;
cout<<"请输入矩阵"<<endl;
getarray(row,column,array);
showarray(row,column,array);
system("pause");
return 0;
}
程序的输出结果:
但是array这个数组的实际空间仍然是100*100的数组空间,如果array数组的很多元素没有使用的话,系统会为这个数组未初始化的元素预分配空间,所以储存的元素为-85893460;它实际的数组里的所有元素显示为:
所以,在使用array的时候,必须得带上行和列,定义array相关的函数必须里面的形参为:
(int row,int column,int array[100][100])。