重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
for (j=0; jn ;++j)
政和网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联公司成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司。
你写成了for (i=0; jn ;++j)
还有 转置不是b[j][i]么?
按要求用指针:
#include stdio.h
void trans( int *p, int n){
int i,j,t;
for(j=0;jn;j++)
{
for(i=j+1;in;i++)
{
t = p[j*n+i];
p[j*n+i] = p[i*n+j];
p[i*n+j] = t;
};
};
}
main() {
int p[4][4]= {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;
printf("before:\n");
for (j=0;j4;j++){
for (i=0;i4;i++) printf("%d ",p[j][i]); printf("\n");
}
trans(p[0][0],4); // 调用
printf("After:\n");
for (j=0;j4;j++){
for (i=0;i4;i++) printf("%d ",p[j][i]); printf("\n");
}
return 0;
}
矩阵转置就是行变为列,列变为行。具体示例如下:
#include stdio.h
void fun(int a[3][3])
{
int i,j,t;
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 main()
{
int i,j,a[3][3];
for(i=0;i3;i++)
for(j=0;j3;j++)
scanf("%d",a[i][j]);
fun(a);
for(i=0;i3;i++)
{
printf("\n");
for(j=0;j3;j++)
printf("%-4d",a[i][j]);
}
}
运行示例: