C语言编写程序:求已知两个矩阵x与y之和,结果存到矩阵x中。大学c语言编程题。
5条回答 默认 最新
技术专家团-小桥流水 2022-09-13 09:40关注矩阵相加需要两个矩阵的行数和列数相同,然后对应位置的数字相加即可。

代码如下:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main() { int** x, ** y; //动态分配内存 int m, n; //矩阵的行数和列数 int i, j; //临时变量 printf("请输入矩阵的行数和列数:"); scanf_s("%d %d", &m, &n); //申请x内存 x = (int**)malloc(sizeof(int*) * m); for (i = 0; i < m; i++) x[i] = (int*)malloc(sizeof(int) * n); //申请y内存 y = (int**)malloc(sizeof(int*) * m); for (i = 0; i < m; i++) y[i] = (int*)malloc(sizeof(int) * n); printf("请输入%d*%d的矩阵x:\n",m,n); for (i = 0; i < m; i++) { for (j = 0; j < n; j++) scanf_s("%d", &x[i][j]); } printf("请输入%d*%d的矩阵y:\n", m, n); for (i = 0; i < m; i++) { for (j = 0; j < n; j++) scanf_s("%d", &y[i][j]); } printf("x+y=\n"); //计算矩阵的和并存入x for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { x[i][j] += y[i][j]; printf("%d ", x[i][j]); //输出结果 } printf("\n"); } //释放内存 for (i = 0; i < m; i++) { free(x[i]); x[i] = 0; free(y[i]); y[i] = 0; } free(x); free(y); x = 0; y = 0; return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录