题目描述:
编写函数,使其能将二维数组(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列即可实现行列互换。
求实求真,大气大为。