2025年6月4日 星期三 乙巳(蛇)年 三月初八 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 数据结构与算法

求两个对称矩阵之和与乘积

时间:03-12来源:作者:点击数:48
  • #include <stdio.h>
  • #define X 3
  • #define Y 6
  • static int value(int a[], int i, int j)
  • {
  • if(i >= j)
  • return a[(i * (i + 1)) / 2 + j]; //下三角
  • else
  • return a[(j * (j + 1)) / 2 + i]; //上三角
  • }
  • static void add(int a[], int b[], int c[][X])
  • {
  • int i, j;
  • for(i = 0; i < X; i++)
  • {
  • for(j = 0; j < X; j++)
  • {
  • c[i][j] = value(a, i, j) + value(b, i, j);
  • }
  • }
  • }
  • static void mul(int a[], int b[], int c[][X])
  • {
  • int i, j, k, sum;
  • for(i = 0; i < X; i++)
  • {
  • for(j = 0; j < X; j++)
  • {
  • sum = 0;
  • for(k = 0; k < X; k++)
  • {
  • sum = sum + value(a, i, k) * value(b, k, j);
  • }
  • c[i][j] = sum;
  • }
  • }
  • }
  • static void dis1(int a[])
  • {
  • int i, j;
  • for(i = 0; i < X; i++)
  • {
  • for(j = 0; j < X; j++)
  • {
  • printf("%4d", value(a, i, j));
  • }
  • printf("\n");
  • }
  • }
  • static void dis2(int c[][X])
  • {
  • int i, j;
  • for(i = 0; i < X; i++)
  • {
  • for(j = 0; j < X; j++)
  • {
  • printf("%4d", c[i][j]);
  • }
  • printf("\n");
  • }
  • }
  • int main(int argc, char *argv[])
  • {
  • int a[Y] = {1, 2, 3, 4, 5, 6};
  • int b[Y] = {1, 1, 1, 1, 1, 1};
  • int c1[X][X], c2[X][X];
  • printf("A矩阵:\n");
  • dis1(a);
  • printf("B矩阵:\n");
  • dis1(b);
  • add(a, b, c1);
  • printf("A+B:\n");
  • dis2(c1);
  • mul(a, b, c2);
  • printf("A*B:\n");
  • dis2(c2);
  • int c[Y],d[Y],ad[X][X],s[X][X];
  • printf("请输入C矩阵(例如A矩阵输入时应为1 2 3 4 5 6):\n");
  • for(int i=0; i<Y; i++)
  • scanf("%d",c+i);
  • printf("C矩阵:\n");
  • dis1(c);
  • for(int i=0; i<Y; i++)
  • scanf("%d",d+i);
  • printf("D矩阵:\n");
  • dis1(d);
  • add(c, d, ad);
  • printf("C+D:\n");
  • dis2(ad);
  • mul(c, d, s);
  • printf("C*D:\n");
  • dis2(s);
  • return 0;
  • }

实验要求

1.1实验目的

掌握对称矩阵的压缩储存方法及相关算法设计

1.2实验内容

已知A和B为两个n*n阶的对称矩阵,在输入时,对称矩阵只输入下三角形元素,存入一维数组,如图6.15所示(对称矩阵M存储在一维数组A中),设计一个程序exp6-5.cpp实现以下功能。

(1) 求对称矩阵A和B的和。

(2) 求对称矩阵A和B的乘积。

要求:描述其逻辑结构+算法;存储结构+算法;介绍每个函数的设计思想,函数调用将的关系及其接口参数的意义。算法代码、算法运行结果。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门