方法一:普通函数调用
#include<stdio.h>
#define N 3
int array[N][N];
void convert(int array[][3]){
int i,j,t;
for(i=0;i<N;i++)
for(j=i+1;j<N;j++){
t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
int main(){
int i,j;
printf("请输入3X3矩阵:\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&array[i][j]);
convert(array);
printf("转置矩阵为:\n");
for(i=0;i<N;i++){
for(j=0;j<N;j++)
printf("%2d",array[i][j]);
printf("\n");
}
return 0;
}
方法二:指针函数调用
#include <stdio.h>
void move(int *pointer){
int i,j,t;
for(i=0;i<3;i++)
for(j=i;j<3;j++){
t=*(pointer+3*i+j);
*(pointer+3*i+j)=*(pointer+3*j+i);
*(pointer+3*j+i)=t;
}
}
int main(){
int a[3][3],*p,i;
printf("请输入3X3矩阵:\n");
for(i=0;i<3;i++)
scanf("%d%d%d",&a[i][0],&a[i][1],&a[i][2]);
p=&a[0][0];
move(p);
printf("转置矩阵为:\n");
for(i=0;i<3;i++)
printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);
return 0;
}