zoukankan      html  css  js  c++  java
  • C语言之基本算法33—矩阵的基本运算

    //矩阵基础
    /*
    ==================================================================
    题目:输入矩阵a,b,输出a,b,a的转置矩阵d。a*b,b+d=e;
    ==================================================================
    */
    #include<stdio.h>
    #define TJ1 for(i=0;i<2;i++)
    #define TJ2 for(j=0;j<3;j++)
    #define hh printf(" ")
    void main()
    {
    int a[2][3],b[3][2],c[2][2],d[3][2],e[3][2];
    int i,j,k;
    //输入矩阵a
    printf("输入2*3矩阵a: ");
    TJ1
    TJ2
    scanf("%d",&a[i][j]);
    //输入矩阵b
    printf(" 输入3*2矩阵b: ");
    TJ2
    TJ1
    scanf("%d",&b[j][i]);
    //输出矩阵a:
    printf(" ===================== 输出矩阵a: ");
    TJ1
    {
    TJ2
    printf("%4d",a[i][j]);
    hh;
    }
    printf(" ===================== a的转置矩阵d: ");
    TJ1
    TJ2
    d[j][i]=a[i][j];
    TJ2
    {
    TJ1
    printf("%4d",d[j][i]);
    printf(" ");
    }
    //输出矩阵b:
    printf(" ===================== 输出矩阵b: ");
    TJ2
    {
    TJ1
    printf("%4d",b[j][i]);
    hh;
    }
    //矩阵a*矩阵b,保存至c
    for(i=0;i<2;i++)
    for(j=0;j<2;j++)
    {
    c[i][j]=0;
    for(k=0;k<3;k++)
    c[i][j]+=a[i][k]*b[k][j];
    }
    //输出矩阵c:
    printf(" ===================== 矩阵a[2][3]*b[3][2]=c[2][2],例如以下: ");
    for(i=0;i<2;i++)
    {
    for(j=0;j<2;j++)
    printf("%4d ",c[i][j]);
    printf(" ");
    }
    printf(" ===================== 矩阵b+矩阵d: ");
    TJ2
    TJ1
    e[j][i]=b[j][i]+d[j][i];
    TJ2
    {
    TJ1
    printf("%4d ",e[j][i]);
    hh;
    }
    }
    /*
    ====================================================================
    评:
    1、掌握输出时换行的方法;

    2、转置矩阵时将原矩阵行和列交换。a[i][j]-->d[j][i],原来是2行3列,如今以3行两列输出!

    i=0;i<3;i++;j=0;j<2;j++;i和j仅仅是符号,不影响结果。仅仅是输出时与d[行][列]相应起来就好。

    3、加法非常easy,但必须是通行矩阵;

    4、乘法比較复杂,先定义初始矩阵。赋初值=0;然后定义保存乘积矩阵的列,注意该列最大

    值为左矩阵的列,然后左行*右列,先列添加,然后换下一行,反复以上步骤,直至最后一行

    乘以最后一列结束。

    =====================================================================
    */





  • 相关阅读:
    React 懒加载组件
    按键精灵Q语言基础
    zookeeper安装和配置(单机+伪集群+集群)
    hbase-site.xml 配置详解
    MySQL主从复制与读写分离概念及架构分析
    mysql 主从复制原理
    Struts2教程
    广告点击率预测(CTR) —— 在线学习算法FTRL的应用
    搭建git服务器
    git常用命令
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6763053.html
Copyright © 2011-2022 走看看