个m行n列的二维数组,m,n由键盘输入,该怎么定义

如题所述

int **a; // a[m][n]
int m,n,i,j;
printf("please input m n\n");
scanf("%d %d", &m, &n); // m,n由键盘输入, 输入后 做动态分配:
a = (int **) malloc(sizeof(int *) * m);
for (j=0;j<m;j++){
a[j] = (int *) malloc(sizeof(int) * n);
}
// 接下来可以 用 a[j][i] 了, 例如 赋值 或 输入,下面 赋值:
for (j=0;j<m;j++) for (i=0;i<n;i++) {
a[j][i] = (j+1)*100 + i;
}
// 下面 输出:
for (j=0;j<m;j++){
for (i=0;i<n;i++) printf("%5d ",a[j][i]);
printf("\n");
}
温馨提示:答案为网友推荐,仅供参考