#include<stdio.h>
void add(inta[3][4],intb[3][4],intc[3][4]);
void translate(inta[3][4],intd[4][3]);
void product(inta[3][4],intd[4][3],inte[3][3]);
int main()
{inta[3][4],b[3][4],i,j,c[3][4],d[4][3],e[3][3];
for(i=0;i<3;i++)for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);add(a,b,c);
translate(a,d);
product(a,d,e);
for(i=0;i<3;i++)for(j=0;j<4;j++)
printf("%3d",c[i][j]);
printf("\n");
for(i=0;i<4;i++)
for(j=0;j<3;j++)
printf("%3d",d[i][j]);
printf("\n");
for(i=0;i<3;i++)for(j=0;j<3;j++)
printf("%8d",e[i][j]);
printf("\n");
return0;}
void add(inta[3][4],intb[3][4],intc[3][4])
{inti,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)c[i][j]=a[i][j]+b[i][j];}
void translate(inta[3][4],intd[4][3])
{inti,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
d[i][j]=a[j][i];}
void product(inta[3][4],intd[4][3],inte[3][3])
{inti,j,k=0;
for(i=0;i<3;i++)
for(k=0;k<3;k++)
for(j=0;j<4;j++)
e[i][k]+=a[i][j]*d[j][k];}
8)编写函数实现两个矩阵的加和乘运算以及矩阵的转置运算。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 南七灵 2022-01-07 21:15关注
#include <stdio.h> void add(int a[3][4], int b[3][4], int c[3][4]); void translate(int a[3][4], int d[4][3]); void product(int a[3][4], int d[4][3], int e[3][3]); int main() { int a[3][4], b[3][4], i, j, c[3][4], d[4][3], e[3][3]; for (i = 0; i < 3; i++) for (j = 0; j < 4; j++) scanf("%d", &a[i][j]); for (i = 0; i < 3; i++) for (j = 0; j < 4; j++) scanf("%d", &b[i][j]); add(a, b, c); translate(a, d); product(a, d, e); for (i = 0; i < 3; i++) { for (j = 0; j < 4; j++) printf("%3d", c[i][j]); printf("\n"); } printf("\n"); for (i = 0; i < 4; i++) { for (j = 0; j < 3; j++) printf("%3d", d[i][j]); printf("\n"); } for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) printf("%8d", e[i][j]); printf("\n"); } return 0; } void add(int a[3][4], int b[3][4], int c[3][4]) { int i, j; for (i = 0; i < 3; i++) for (j = 0; j < 4; j++) c[i][j] = a[i][j] + b[i][j]; } void translate(int a[3][4], int d[4][3]) { int i, j; for (i = 0; i < 3; i++) for (j = 0; j < 4; j++) d[j][i] = a[i][j]; } void product(int a[3][4], int d[4][3], int e[3][3]) { int i, j, k; int temp; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { temp = 0; for (k = 0; k < 4; k++) { temp += a[i][k] * d[k][j]; } e[i][j] = temp; } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效