供参考:
#include <stdio.h>
#define N 10
void InputMatrix(int* a, int Row, int Col)//输入矩阵元素
{
int i,j;
for (i = 0; i < Row; i++)
for (j = 0; j < Col; j++)
scanf("%d", a + i * Col + j);
}
void TransMatrix(int* a, int Row, int Col)//矩阵转置
{
int i,j,tmp;
for(i = 0; i < Row; i++){
for(j = i; j < Col; j++){
tmp = *(a + i * Col + j);
*(a + i * Col + j) = *(a + j * Row + i);
*(a + j * Row + i) = tmp;
}
}
}
void PrintMatrix(int* a, int Row, int Col)//输出矩阵
{
int i, j;
for (i = 0; i < Row; i++){
for (j = 0; j < Col; j++)
{
printf(j==0? "%d":" %d", *(a + i * Col + j));
}
printf("\n");
}
}
int main()
{
int a[N][N] = { 0 }, n = 3;
while (scanf("%d", &n) == 1){
InputMatrix(a[0], n, n);
TransMatrix(a[0], n, n);
PrintMatrix(a[0], n, n);
}
return 0;
}