c++中二维数组长度如何设置为键盘输入的变量?

如题所述

用指针实现

具体代码因为已经好久没写了,所以不写了

首先,声明一个指向要实现的数组的数据类型的指向一维指针数组的指针(2级指针)。例如int **p[] (格式应该是这样的吧)

然后用输入分配一维指针数组的大小

然后再分配每个指针指向空间的大小

使用时用指针代替数组名就行了,如:p[2][0] 代替a[2][0]

 

嘎嘎……还是在眼前写的程序里发现了这个代码段

/******************************************************************************

动态开辟二维数组

******************************************************************************/

 

#include<malloc.h>

#include<stdio.h>

/*输出数组*/

void printArray(int x,int y,int** pia)

{

 int i=0;

 int j=0;

 for(i=0;i<x;i++)

 {

  for(j=0;j<y;j++)

  {

   printf("%4d ",pia[i][j]);

  }

  printf("\n");

 }

}

 

/*创建整形数组[x][y]*/

int** createIntArray(int x,int y)

{

 int i=0;

 int **px=(int**)malloc(sizeof(int *)*x);

 

 for(i=0;i<y;i++)

 {

  px[i]=(int *)malloc(sizeof(int)*y);

 }

 return px;

}

 

/*初始化数组*/

void INITintArray(int x,int y,int** pia)

{

 int i=0;

 int j=0;

 

 for(i=0;i<x;i++)

 {

  for(j=0;j<y;j++)

  {

   pia[i][j]=(i+1)*(j+1);

  }

 }

}

 

int main()

{

 int iArrayXLength=10;

 int iArrayYLength=10;

 int** ipa;

 

 ipa=createIntArray(iArrayXLength,iArrayYLength);

 INITintArray(iArrayXLength,iArrayYLength,ipa);

 printf("输出数组");

 printArray(iArrayXLength,iArrayYLength,ipa);

}

 

 

 

运行结果

请忽视前面的乱码,嘿嘿……

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-14
你好,不能这样,二维数组的第二个下标必需为常量,不能为变量,你可以考虑使用链表本回答被提问者采纳
第2个回答  2012-04-14
数组的下标是不能用变量的
可以将下标的值设置的比键盘输入值大就行了

c++中二维数组长度如何设置为键盘输入的变量?
首先,声明一个指向要实现的数组的数据类型的指向一维指针数组的指针(2级指针)。例如int **p[] (格式应该是这样的吧)然后用输入分配一维指针数组的大小 然后再分配每个指针指向空间的大小 使用时用指针代替数组名就行了,如:p[2][0] 代替a[2][0]嘎嘎……还是在眼前写的程序里发现了这个代码...

...定义一个二维数组,然后把我从键盘上输入的变量存进这数组里面_百度...
1.定义m*m的数组。int m,**p;p=new int*[m];2.定义n*m的数组 int n;int (*p)[2]= new int [n][2];\/\/此处的2不能是变量 3.定义n*m的二维数组 float tt = new float*[n];for (int i=0;i 评论 0 0 加载更多

C++ 输入一个m行n列的二维数组,m,n由键盘输入,该怎么定义?
C++不支持变长数组。所以你要考虑到M 和 N的最大是多少。然后声明的数组长度就是多少。多出来的数组单元就不要去管他。

如何初始化一个2维数组并通过键盘输入参数?C++
void main(){ int a[2][3];\/\/判断循环次数_即数组元素:2+1+3+1=7 int b;for(int n=0;n<=2;n++){\/\/从键盘接受数据对此二维数组初始化 for(int m=0;m<=3;m++){ cout<<"请输入a"<<n<<m<<endl;cin>>a[n][m];\/\/请输入整型数值,否则会失去精度或者出错 } } for(int i...

c语言c++语言如何用二维数组做形参?
C\/C++中,二维数组的第一维的每一个元素都是一维数组。所以,用指向一维数组的指针或用第一维维数空缺的二维数组作为函数的形式参数都能达到目的。设处理数组为int型,举例代码如下:\/\/#include "stdafx.h"\/\/If the vc++6.0, with this line.#include "stdio.h"void myprint(int (*p)[5]){...

c++二维数组输入输出问题
cin >> a[i][100]; 只能输入一个字母,改为cin >> a[i];cout << a[i][100]<<endl; 这个是输出每个字符串第100个字符,而且这个for循环只能将输入字符串的顺序颠倒,及先输入后输出 最好定义的时候初始化char a[100][100] = {0};...

c++中怎样实现二维数组的任意输入
采用堆分配,用new动态创建二维数组,维度m,n可以用scanf输入 \/\/分配 int **tmp = new int*[m]; for(int i = 0;i<m;i++) { tmp[i] = new int[n]; } \/\/释放 for(int i = 0;i<m;i++) { delete[] tmp[i]; } delete []tmp;...

c++中怎么输入二维数组
1、首先,定义一个常量SIZE,控制数组大小。2、定义一个自定义函数,用来输入二维数组各元素的值。3、用一个二重循环,输入二维数组的值。4、主函数中,定义两个整型变量m和n,保存数组的行和列。5、接着,定义一个二维数组。6、输入数组的行列数,保存在变量m和n中。7、然后,输入二维数组,保存...

c++中怎么输入二维数组
1、首先,定义一个常量SIZE,控制数组大小。2、定义一个自定义函数,用来输入二维数组各元素的值。3、用一个二重循环,输入二维数组的值。4、主函数中,定义两个整型变量m和n,保存数组的行和列。5、接着,定义一个二维数组。6、输入数组的行列数,保存在变量m和n中。7、然后,输入二维数组,保存...

将二维数组(5行5列)的右上半部分置零.(矩阵中的数值可通过键盘任意输入...
usingnamespacestd;intmain(){ inti,j;inta[5][5];printf("请输入5*5个整数同一行5个以空格隔开,换行用回车键:\n");for(i=0;i<5;i++)cin>>a[i][0]>>a[i][1]>>a[i][2]>>a[i][3]>>a[i][4];for(i=0;i<5;i++...

相似回答
大家正在搜