c语言如何通过定义函数来转置矩阵?

Python028

c语言如何通过定义函数来转置矩阵?,第1张

#include <stdio.h>

int main()

{ struct aaa

{ int x

  int y

}

struct aaa t,a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2}

int i,j

for(i=0i<3i++)

{ for(j=0j<3j++)

    printf("[%d,%d]  ",a[i][j].x,a[i][j].y)

  printf("\n")

}

printf("after:\n")

for(i=0i<3i++)

  for(j=0j<ij++)

  { t=a[i][j]

    a[i][j]=a[j][i]

    a[j][i]=t

  }

for(i=0i<3i++)

{ for(j=0j<3j++)

    printf("[%d,%d]  ",a[i][j].x,a[i][j].y)

  printf("\n")

}

return 0

}

或:

#include <stdio.h>

struct aaa

{ int x

int y

}

void zhuanzhi(struct aaa a[][3])

{ struct aaa t

int i,j

for(i=0i<3i++)

  for(j=0j<ij++)

  { t=a[i][j]

    a[i][j]=a[j][i]

    a[j][i]=t

  }

}

void prt(struct aaa a[][3])

{ int i,j

for(i=0i<3i++)

{ for(j=0j<3j++)

    printf("[%d,%d]  ",a[i][j].x,a[i][j].y)

  printf("\n")

}

}

int main()

{ struct aaa a[3][3]= {0,0,0,1,0,2,1,0,1,1,1,2,2,0,2,1,2,2}

prt(a)

zhuanzhi(a)

printf("after:\n")

prt(a)

return 0

}

#include "stdio.h"

void main()

{

void zhuan(int array[2][3],int b[3][2])

int array[2][3],b[3][2]int i,j

printf("input:\n")

for(i=0i<2i++)

for(j=0j<3j++)

{

scanf("%d",&array[i][j])

}

printf("\n")

zhuan(array,b)

printf("\n")

for(i=0i<3i++)

{

for(j=0j<2j++)

printf("%d",b[i][j])

printf("\n")

}

}

void zhuan(int array[2][3],int b[3][2]) //转置函数逻辑错误,没那么麻烦,直接转就是了!

{

int i,j

for(i=0i<2i++)

for(j=0j<3j++)

{

b[j][i]=array[i][j]

}

}