c语言~使用函数 完成3×3矩阵转置,输入一矩阵,输出其转置矩阵。

如题所述

#include <stdio.h>
#define N 3
int array[N][N];
void transition(int array[][3])
{
 int i,j,temp;
 for(i=0;i<N;i++)
  for(j=i+1;j<N;j++)
  {
   temp=array[i][j];
   array[i][j]=array[j][i];
   array[j][i]=temp;
  }
}
int main(void)
{
 void transition(int array[][3]);
 int i,j;
 printf("请输入数据\n");
 for(i=0;i<N;i++)
  for(j=0;j<N;j++)
   scanf("%d",&array[i][j]);
 printf("\n");
 transition(array);
 printf("调换数据如下\n");
 for(i=0;i<N;i++)
 {
  for(j=0;j<N;j++)
   printf("%5d",array[i][j]);
   printf("\n");
 }
 return 0;
}
~~~~~~
我写的代码,你自己参考吧,很简单的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-04
#include<stdio.h>
void tx(int *a, int n){
int i,j,t;
for (j=0;j<n;j++)
for (i=j;i<n;i++){
t = a[j*n+i]; a[j*n+i]=a[i*n+j]; a[i*n+j]=t;
}
}

main(){
int x[3][3];
int i,j,n=3;
printf("input 3x3 matrix data:\n");
for (j=0;j<n;j++) for (i=0;i<n;i++) scanf("%d",&x[j][i]); //输入

tx(&x[0][0],n); //转置

for (j=0;j<n;j++){
for (i=0;i<n;i++) printf("%d ",x[j][i]); // 输出
printf("\n");
};
return 0;
}
相似回答