c语言中函数的转置 c语言 转置

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

#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=0; i3; i++)

{ for(j=0; j3; j++)

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

printf("\n");

}

printf("after:\n");

for(i=0; i3; i++)

for(j=0; ji; j++)

{ t=a[i][j];

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

a[j][i]=t;

}

for(i=0; i3; i++)

{ for(j=0; j3; j++)

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=0; i3; i++)

for(j=0; ji; j++)

{ 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=0; i3; i++)

{ for(j=0; j3; j++)

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;

}

转置函数 c语言

在转置函数中,第二个循环的约束条件应该是for(n=m;n5;n++){.....}。因为转置只是把上三角和下三角中的值调换,只用执行上三角交换就好了,如果你把上线都交换了,那就等于没有交换。这属于逻辑错误。

正确程序如下:

void transpose(int a[5][5] )

{

int temp = 0,m,n;

for(m = 0;m 5;m++)

{

for(n = m;n 5;n++)

{

temp = a[m][n];

a[m][n] = a[n][m];

a[n][m] = temp;

}

}

}

C语言实现字符串的转置,关于转置函数我只会用数组元素交换,大佬们能告诉我怎么用两个指针转置吗?

#include stdio.h

#include string.h

int main()

{

char test[] = "QQ:2-3-6-4-6-2-2-4-2-3";

char *p = test, *q = test + strlen(test) - 1;

printf("翻转前:%s\n", test);

while(p  q) {

char c = *p;

*p++ = *q;

*q-- = c;

}

printf("翻转后:%s\n", test);

return 0;

}


文章名称:c语言中函数的转置 c语言 转置
文章网址:http://scyanting.com/article/ddepgoe.html