/* 将所给矩阵转秩后输出 */
#include <stdio.h>
#define SIZE 4
void print_array(int array[SIZE][SIZE])
{
int i, j;
for (i = 0; i < SIZE; ++i) {
for (j = 0; j < SIZE; ++j)
printf("\t%-4d", array[i][j]);
printf("\n");
}
}
void transpose_array(int array[SIZE][SIZE], int transpose[SIZE][SIZE]) {
int i, j;
for (i = 0; i < SIZE; ++i) {
for (j = 0; j < SIZE; ++j)
transpose[j][i] = array[i][j];
}
}
int main(void)
{
int array[SIZE][SIZE] = {{0, 1, 2, 3},
{4, 5, 6, 7},
{8, 9, 10, 11},
{12, 13, 14, 15}};
int transpose[SIZE][SIZE] = {0};
/* 打印二维数组*/
printf("Primary array:\n");
print_array(array);
/* 将数组转秩结果存入另一个数组中 */
transpose_array(array, transpose);
/* 打印二维数组*/
printf("\nFinal array:\n");
print_array(transpose);
return 0;
}
为什么transpose开始是数组全是0,后来在 transpose_array函数中变成转置矩阵,但是由于形参无法传递给形参应该不会输出转置吧?
阿波罗的战车
慕无忌1623718
jeck猫