《程序设计基础实训指导教程-c语言》
ISBN 978-7-03-032846-5
p142
7.1.2 上级实训内容
【实训内容3】用子函数的方法求一个3*4的数组的转置数组
#include<stdio.h>
#define M 3 //3行
#define N 4 //4列
int a[M][N]; //定义全局变量
void change(int a[][N]); //change函数声明,调用二维数组
void main()
{
int i,j;
printf("输入%d*%d数组:\n",M,N);
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",&a[i][j]);
}
}
change(a);
}
void change(int a[][N])
{
int b[N][M],i,j; //定义4*3数组
printf("交换前:\n");
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
b[j][i]=a[i][j]; //行列转换
}
}
printf("交换后:\n");
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
printf("%d\t",b[i][j]);
}
printf("\n");
}
}