矩阵的转置,实质上是二维矩阵下标的互换
下面以三阶矩形为例
#include<stdio.h>
void Sanjieshuru(int San[][3]);
int Output(int San[][3]);
int Change(int San[][3]);
int main(){
int i,m;
int San[][3]={0}; //二维数组用来存放矩阵元素
printf("输入三阶矩阵\n下面请按行依次输入\n");
Sanjieshuru(San); //三阶矩阵的输入
Change(San);} //矩阵的转置函数加输出函数
int Change(int San[][3]){
int i,n,m; //m用于临时储存
for(i=0;i<3;i++){
for(n=0;n<3;n++){
if(n>i){
m=San[i][n];
San[i][n]=San[n][i];
San[n][i]=m;}
}}
Output(San);}
int Output(int San[][3]){
int i,n;
printf("\n转置矩阵为\n");
for(i=0;i<3;i++){
for(n=0;n<3;n++){
printf("%d ",San[i][n]);}
printf("\n");}
}
void Sanjieshuru(int San[][3]){
int i,n;
//两个for循环嵌套,用来输入元素
for(i=0;i<3;i++)
for(n=0;n<3;n++){
scanf("%d",&San[i][n]);}
}