第九周项目2 对称矩阵加法和乘法

  1. /* 
  2.  *Copyright (c) 2016,烟台大学计算机学院 
  3.  *All rights reserved. 
  4.  *文件名称:yi.cpp 
  5.  *作者:衣龙川 
  6.  *完成日期:2016年11月3日 
  7.  *版本号:vc++6.0 
  8.  * 
  9.  *问题描述:对称矩阵压缩存储的实现与应用 
  10.  *输入描述:第n行的n个数值
  11.  *程序输出:对称矩阵 
  12. /*
  13. #include <stdio.h>
    #define N 4
    #define M 10
    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];
    }
    void madd(int a[],int b[],int c[][N])
    {
        int i,j;
        for (i=0; i<N; i++)
            for (j=0; j<N; j++)
                c[i][j]=value(a,i,j)+value(b,i,j);
    }
    void mult(int a[],int b[],int c[][N])
    {
        int i,j,k,s;
        for (i=0; i<N; i++)
            for (j=0; j<N; j++)
            {
                s=0;
                for (k=0; k<N; k++)
                    s=s+value(a,i,k)*value(b,k,j);
                c[i][j]=s;
            }
    }
    void disp1(int a[])
    {
        int i,j;
        for (i=0; i<N; i++)
        {
            for (j=0; j<N; j++)
                printf("%4d",value(a,i,j));
            printf("\n");
        }
    }
    void disp2(int c[][N])
    {
        int i,j;
        for (i=0; i<N; i++)
        {
            for (j=0; j<N; j++)
                printf("%4d",c[i][j]);
            printf("\n");
        }
    }
    int main()
    {
        int a[M]= {1,2,3,4,5,6,7,8,9,10};  //a表示压缩存储的对称矩阵
        int b[M]= {1,1,1,1,1,1,1,1,1,1};
        int c1[N][N],c2[N][N];
        madd(a,b,c1);
        mult(a,b,c2);
        printf("a矩阵:\n");
        disp1(a);
        printf("b矩阵:\n");
        disp1(b);
        printf("a+b:\n");
        disp2(c1);
        printf("a×b:\n");
        disp2(c2);
        printf("\n");
        return 0;
    }
    运行截图:

  14. 知识点总结:根据上三角矩阵和下三角矩阵返回到a[]的值进行加减乘除。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值