题目:编写一个函数(参数用指针)将一个3×3矩阵转置。
例如:
1 2 3 ———–> 7 4 1
4 5 6 转置后为 8 5 2
7 8 9 ———–> 9 6 3
主要代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
void fun(int (*a)[n], int (*b)[n]);
int main () { int a[n][n],b[n][n]; fun(a,b); return 0; }
void fun(int (*a)[3], int (*b)[3]) { int i,j; printf("input 9 numbers:\n"); for (i=0;i<n;i++) { for (j=0;j<n;j++) { scanf("%d",(a[i]+j)); } } printf("start:\n"); for (i=0;i<n;i++) { for (j=0;j<n;j++) { printf("%4d",*(a[i]+j)); } printf("\n"); } for (i=0;i<n;i++) { for (j=0;j<n;j++) { *(b[i]+j) = *(a[n-1-j]+i); } } printf("after:\n"); for (i=0;i<n;i++) { for (j=0;j<n;j++) { printf("%4d",*(b[i]+j)); } printf("\n"); } }
|
运行结果:
