用c++编写程序,把M*N矩阵A加上矩阵A的转置,存放在矩阵B中
时间: 2023-06-10 16:08:48 浏览: 121
下面是用 C 语言编写的程序,实现将 M*N 矩阵 A 加上矩阵 A 的转置,存放在矩阵 B 中的操作:
```c
#include<stdio.h>
#include<stdlib.h>
int main(){
int m,n,i,j;
printf("请输入矩阵的行数和列数: ");
scanf("%d%d",&m,&n);
int **A,**B;
A=(int **)malloc(m*sizeof(int*));
B=(int **)malloc(m*sizeof(int*));
for(i=0;i<m;i++){
A[i]=(int *)malloc(n*sizeof(int));
B[i]=(int *)malloc(m*sizeof(int));
}
printf("请输入矩阵A: ");
for(i=0;i<m;i++){
for(j=0;j<n;j++){
scanf("%d",&A[i][j]);
}
}
for(i=0;i<m;i++){
for(j=0;j<m;j++){
B[i][j]=A[i][j]+A[j][i];
}
}
printf("矩阵B为:\n");
for(i=0;i<m;i++){
for(j=0;j<m;j++){
printf("%d ",B[i][j]);
}
printf("\n");
}
for(i=0;i<m;i++){
free(A[i]);
free(B[i]);
}
free(A);
free(B);
return 0;
}
```
程序首先通过输入的行数和列数,动态分配了两个指针数组 A 和 B,分别表示矩阵 A 和矩阵 B。接着,程序通过循环输入矩阵 A 中的每个元素。然后,程序通过两个循环遍历矩阵 A,将 A 矩阵加上其转置,存放在 B 矩阵中。最后,程序输出矩阵 B 中的每个元素,释放内存并结束程序。
需要注意的是,这里假设输入的矩阵 A 是一个对称矩阵(即 A 矩阵等于其转置),否则程序需要进行额外的计算。
阅读全文