二维数组 长度定义 高手进!!!

来源:百度知道 编辑:UC知道 时间:2024/06/08 02:00:55
对于数组的定义是不可以使用变量来第一它的长度。但我想知道通过什么算法可以实现对二维数组的长度通过变量来实现。如下程序:
#include<iostream>
#using namespace std;
void main()
{
int i,k;
cout<<"请输入你想要输入数组的行数:"<<endl;
cin>>i;
cout<<"请输入你想要输入数组的列数:"<<endl;
cin>>k;
cout<<"请输入数组元素:"<<endl;
然后在这儿便有相对应的一个二维数组a[i][k];来接收这些元素。

规定是不可以改的,但我们可以设置一常量,先来初始化数组!再使用变量就行了!就如下面的程序,我经常这么处理的!先设置一个边界值再加一个判断!
我觉得挺实用的!特别对数组来说!

#include "iostream.h"
#include "stdlib.h" //必须引用,因为后面用到exit()函数
const int MAX=100;
//边界值设置,如果设置成很大数值,后面的判断也可以省略!
void main()
{
int a[MAX][MAX];
int line,column,sum;
cout<<"输入数组的行: ";
cin>>line;
cout<<"输入数组的列: ";
cin>>column;
if(line>MAX||column>MAX) {cout<<"输入的数据太大!\n";exit(1);}
//处于安全考虑不省略为好!
cout<<"请输入"<<line<<"行"<<column<<"列数据:"<<endl;
sum=line*column;//数组元素个数总和
for(int i=0;i<line;i++)
for(int j=0;j<column;j++)
cin>>a[i][j];
for(i=0;i<line;i++)
{
for(int j=0;j<column;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}

补充:如果刁难的话,输入