遍历上三角
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
if(i <= j){ /* 只遍历上三角阵 */
temp = a[i][j]; /* 以下3句交换 a[i][j] 和 a[j][i] */
a[i][j] = a[j][i];
a[j][i] = temp;
}
或者
for(i = 0; i < n; i++)
for(j = i; j < n; j++)
{ /* 只遍历上三角阵 */
temp = a[i][j]; /* 以下3句交换 a[i][j] 和 a[j][i] */
a[i][j] = a[j][i];
a[j][i] = temp;
}
只遍历下三角
for(i = 0; i < n; i++)
for(j = 0; j < i; j++)
{ /* 只遍历下三角阵 */
temp = a[i][j]; /* 以下3句交换 a[i][j] 和 a[j][i] */
a[i][j] = a[j][i];
a[j][i] = temp;
}
如果是这样
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
{
temp = a[i][j]; /* 以下3句交换 a[i][j] 和 a[j][i] */
a[i][j] = a[j][i];
a[j][i] = temp;
}
那么转置两次 与原矩阵相同