C++语言程序设计

在上面的程序中，由于矩阵的行列不同，必须使用两个数组，对于n×n矩阵，我们可以只用一个数组，在数组中进行行列元素的互换。程序如下：

| 例6-9

#define ROW 4
#include <stdio.h>
void main(void)
{
int sm[ROW][ROW],i,j,temp;
printf("Input elements of a matrix (%d×%d):\n",ROW,ROW);
for(i = 0;i < ROW;i ++)
for(j = 0;j < ROW;j ++)
scanf("%d",&sm[i][j]);
for(i = 0;i < ROW - 1;i ++) //转置
for(j = i + 1;j < ROW;j ++)
{
temp = sm[i][j];
sm[i][j] = sm[j][i];
sm[j][i] = temp;
}
printf("The matrix has been transposed:\n");
for(i = 0;i < ROW;i ++)
{
for(j = 0;j < ROW;j ++)
printf("%5d",sm[i][j]);
printf("\n");
}
}

运行结果：
Input elements of a matrix (4×4):
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
The matrix has been transposed:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16