#include<stdio.h>
void transform(int(*p)[4]);
int main()
{
int matrix[4][4] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }, { 13, 14, 15, 16 } };
int i, j;
transform(matrix);
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
{
printf("%d ", matrix[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}
void transform(int(*matrix)[4])
{
int temp, i, j;
for (i = 0; i < 4; i++)
{
for (j = 0; j <i; j++)
{
temp = matrix[j][i];
matrix[j][i] = matrix[i][j];
matrix[i][j] = temp;
}
}
}
本来是个很简单的题,因为写成了
for (i = 0; i < 4; i++)
for (j = 0; j <4; j++)
一直转置不了,就在想原因啊,
原来是这样写转置了两次,就转回去了
for (i = 0; i < 4; i++)
for (j = 0; j <i; j++)
和
for (i = 0; i < 4; i++)
for (j = 3; j >i; j--)
这样写是一样的,不过我更喜欢第一个样子写