题目描述:
编写函数,使其能将二维数组(5*3)中的数据进行行列互换。(参考函数原型:void tran(int array[5][3], int out_array[3][5])) 输入输出格式要求: out_array是用于保存行列交换之后的结果的数组 碰到异常情况输出error(参数为null) 例如: array[5][3] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12},{13,14,15}} 调用tran函数之后 out_array[3][5] = {{1,4,7,10,13},{2 5 8 11 14},{3 6 9 12 15}}
参考代码:
#include<stdio.h>
void tran(int array[5][3],int out_array[3][5])
{
if(array==NULL||out_array==NULL)
{
printf("error");
return;
}
for(int i=0;i<=2;i++)
{
for(int j=0;j<=4;j++)
{
out_array[i][j]=array[j][i];
}
}
}
int main()
{
int a[5][3],b[3][5];
for(int i=0;i<=4;i++)
for(int j=0;j<=2;scanf("%d",&a[i][j++]));
tran(a,b);
for(int i=0;i<=2;i++)
{
for(int j=0;j<=4;j++)
printf("%d ",b[i][j]);
printf("\n");
}
return 0;
}
讲解:
题目偏易,甚至连行与列都是固定的。只需要开二重循环将a的第j行第i列赋给b的第i行第j列即可实现行列互换。
求实求真,大气大为。