C语言二维数组行列互换(矩阵转制)

时间:2024-03-26 11:26:25

先上运行结果:
C语言二维数组行列互换(矩阵转制)

以下是代码实现:

#include <stdio.h>
#define N 4

int main(void)
{
  int a[N][N] = {{21, 12, 13, 24},
		  		 {25, 16, 47, 38},
				 {29, 11, 32, 54},
				 {42, 21, 33, 10}};
  int i, j, temp;

  //显示原数组
  printf("The array is:\n");
  for(i=0;i<N;i++)
    {
      for(j=0;j<N;j++)
		printf(" %d", a[i][j]);
      printf("\n");
    }
    
  //以下代码是对行列进行互换的核心代码。
  //主要思想是对从左上至右下以下的半个数组进行分析,找出全部可以进行对调的数
  //找出i、j和N之间的规律。
  for(i=1;i<N;i++)
    for(j=0;j<i;j++)
	{
	  temp=a[i][j];
	  a[i][j]=a[j][i];
	  a[j][i]=temp;
	}

  //显示转制后数组
  printf("After twist the array is:\n");
  for(i=0;i<N;i++)
    {
      for(j=0;j<N;j++)
		printf(" %d", a[i][j]);
      printf("\n");
    }

  return 0;
  
}