C语言: 矩阵a和a的转置相加存到矩阵b中

来源:百度知道 编辑:UC知道 时间:2024/05/08 16:02:47
怎么编写?

矩阵就是一个二维数组.
设有a0[m][n],那么他的转置就是a1[n][m].
转置就是行变成列,列变成行.
int i = 0;
int j = 0;
for(i = 0; i < m; i++)
{
for(j = 0; j < n; j++)
{
a1[j][i] = a0[i][j];
}
}
大概就是这个意思.
还有就是如果m不等于n.矩阵a和a的转置能相加么.
相加就是
for(i = 0; i < m; i++)
{
for(j = 0; j < n; j++)
{
b[i][j] = a0[i][j] + a1[i][j];
}
}

#include<stdio.h>
#define N 4
void main()
{
int a[N][N],b[N][N],i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
b[i][j]=a[i][j]+a[j][i];
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%3d",b[i][j]);
printf("\n");
}
}

for(i = 0; i < m; i++)
{
for(j = 0; j < n; j++)
{
b[i][j] = a0[i][j] + a1[i][j];
}