题目描述
输入一个m行n列(m,n<=6)的二维数组,输出所有内容
输入
第一行输入m和n
接下来m行每行输入n个整数
输出
m行n列的二维数组
样例输入
2 3 1 2 3 4 5 6
样例输出
1 2 3 4 5 6
#include"stdio.h"
void inputdata(int *a[],int m,int n); //用指针数组来访问二维数组
void outputdata(int *a[],int m,int n);//输出
main()
{
int *b[6],m,n;
int c[6][6]={};
int i;
scanf("%d%d",&m,&n); //输入行数列数
for(i=0;i<m;i++) //让b数组中的每个指针指向二维数组每行的第一个元素
b[i]=c[i];
inputdata(b,m,n);
outputdata(b,m,n); //调用输出
}
void inputdata(int *a[],int m,int n)
{
int i,j; //利用已经建立的指针数组与二维数组的关联,来控制二维数组
for(i=0;i<m;i++) //总共m行,就用其中的前m个指针
{
for(j=0;j<n;j++) //每行n个数据,用指针控制一行中的每个元素,
//a[i]已经是指针了,是每行中第一个元素的地址
scanf("%d",a[i]+j); //理解这条语句的作用
//scanf("%d",&a[i][j]); a不是二维数组
}
}
void outputdata(int *a[],int m,int n)
{
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
printf("%d ",*(a[i]+j));
}
printf("\n");
}
}
以上是详细代码加注释 ,希望能够帮助到大家