c++中怎样实现二维数组的任意输入

用printf和scanf语句怎么实现任意二维数组的输入输出?

采用堆分配,用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;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-13
#include<stdio.h> #include<malloc.h> void main(){ int m=0,n=0,i,j,b=0; int *a; scanf("%d%d",&m,&n); a=(int *)malloc(m*n*sizeof(int));//可以理解为a[m][n], for(i=0;i<m;i++) { for(j=0;j<n;j++) { printf("输入a[%d][%d]的值:",i,j); scanf("%d",&b); *(a+i*n+j)=b;//a[i][j]的值(0<=i<m;0<=j<n) 就是 *(a+i*m+j)的值 } } }
相似回答