二维数(3*3方阵)组转置。
#include <stdio.h>
void print_matrix(int (*str)[3])
{
int i, j;
printf("---------------\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d ", str[i][j]);
}
printf("\n");
}
printf("---------------\n");
}
void matrix_trans(int (*str)[3])
{
int i, j, temp;
for (i = 0; i < 3; i++)
{
for (j = i + 1; j < 3; j++) //如果j从0开始,这会每个交换两次,相当于没交换.j应从i或者i+1开始.
{
temp = str[i][j];
str[i][j] = str[j][i];
str[j][i] = temp;
}
}
}
int main()
{
int i, j;
int a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
print_matrix(a);
matrix_trans(a);
print_matrix(a);
return 0;
}