zoukankan      html  css  js  c++  java
  • <矩阵的基本操作:矩阵相加,矩阵相乘,矩阵转置>

      1 //矩阵的基本操作:矩阵相加,矩阵相乘,矩阵转置
      2 #include<stdio.h>
      3 #include<stdlib.h>
      4 #define M 2
      5 #define N 3
      6 #define P 4
      7 int main()
      8 {
      9     //函数声明
     10     void JuZhenXiangJia();
     11     void JuZhenXiangCheng();
     12     void JuZhenZhuanZhi();
     13     JuZhenZhuanZhi();
     14     JuZhenXiangJia();
     15     JuZhenXiangCheng();
     16     system("pause");
     17     return 0;
     18 }
     19 void JuZhenXiangJia()
     20 {//两个二维数组相加
     21     int i,j;
     22     int A[M][N],B[M][N],C[M][N];
     23     printf("请输入矩阵A的元素:
    ");
     24     for(i=0;i<M;i++)
     25     {
     26         for(j=0;j<N;j++)
     27         {
     28             scanf("%d",&A[i][j]);
     29         }
     30     }
     31     printf("
    矩阵A如下所示:
    ");
     32     for(i=0;i<M;i++)
     33     {
     34         for(j=0;j<N;j++)
     35         {
     36             printf("%3d",A[i][j]);
     37         }
     38         printf("
    ");
     39     }
     40     printf("
    请输入矩阵B的元素:
    ");
     41     for(i=0;i<M;i++)
     42     {
     43         for(j=0;j<N;j++)
     44         {
     45             scanf("%d",&B[i][j]);
     46         }
     47     }
     48     printf("
    矩阵B如下:
    ");
     49     for(i=0;i<M;i++)
     50     {
     51         for(j=0;j<N;j++)
     52         {
     53             printf("%3d",B[i][j]);
     54         }
     55         printf("
    ");
     56     }
     57     printf("
    ");
     58     //矩阵A和矩阵B的和放在矩阵C中
     59     for(i=0;i<M;i++)
     60     {
     61         for(j=0;j<N;j++)
     62         {
     63             C[i][j] = A[i][j]+B[i][j];
     64         }
     65     }
     66     printf("
    矩阵C如下:
    ");
     67     for(i=0;i<M;i++)
     68     {
     69         for(j=0;j<N;j++)
     70         {
     71             printf("%3d",C[i][j]);
     72         }
     73         printf("
    ");
     74     }
     75     printf("
    ");
     76 }
     77 
     78 void JuZhenXiangCheng()
     79 {//两个二维数组相乘
     80     int i,j,k;
     81     int A[M][N],B[N][P],C[M][P];
     82     printf("请输入矩阵A的元素:
    ");
     83     for(i=0;i<M;i++)
     84     {
     85         for(j=0;j<N;j++)
     86         {
     87             scanf("%d",&A[i][j]);
     88         }
     89     }
     90     printf("
    矩阵A如下所示:
    ");
     91     for(i=0;i<M;i++)
     92     {
     93         for(j=0;j<N;j++)
     94         {
     95             printf("%3d",A[i][j]);
     96         }
     97         printf("
    ");
     98     }
     99     printf("
    请输入矩阵B的元素:
    ");
    100     for(i=0;i<N;i++)
    101     {
    102         for(j=0;j<P;j++)
    103         {
    104             scanf("%d",&B[i][j]);
    105         }
    106     }
    107     printf("
    矩阵B如下:
    ");
    108     for(i=0;i<N;i++)
    109     {
    110         for(j=0;j<P;j++)
    111         {
    112             printf("%3d",B[i][j]);
    113         }
    114         printf("
    ");
    115     }
    116     printf("
    ");
    117     //矩阵A和矩阵B相乘,积放在矩阵C中
    118     for(i=0;i<M;i++)
    119     {
    120         for(j=0;j<P;j++)
    121         {
    122             C[i][j] = 0;
    123             for(k=0;k<N;k++)
    124             {
    125                 C[i][j] = C[i][j]+A[i][k]*B[k][j];
    126             }
    127         }
    128     }
    129     printf("
    矩阵C如下:
    ");
    130     for(i=0;i<M;i++)
    131     {
    132         for(j=0;j<P;j++)
    133         {
    134             printf("%5d",C[i][j]);
    135         }
    136         printf("
    ");
    137     }
    138     printf("
    ");
    139 }
    140 
    141 void JuZhenZhuanZhi()
    142 {//矩阵的转置
    143     int i,j;
    144     int A[M][N],B[N][M];
    145     printf("请输入矩阵A的元素:
    ");
    146     for(i=0;i<M;i++)
    147     {
    148         for(j=0;j<N;j++)
    149         {
    150             scanf("%d",&A[i][j]);
    151         }
    152     }
    153     printf("
    矩阵A如下所示:
    ");
    154     for(i=0;i<M;i++)
    155     {
    156         for(j=0;j<N;j++)
    157         {
    158             printf("%3d",A[i][j]);
    159         }
    160         printf("
    ");
    161     }
    162     //矩阵转置为矩阵B
    163     for(i=0;i<M;i++)
    164     {
    165         for(j=0;j<N;j++)
    166         {
    167             B[j][i] = A[i][j];
    168         }
    169     }
    170     printf("转置后得到的矩阵B为:
    ");
    171     for(i=0;i<N;i++)
    172     {
    173         for(j=0;j<M;j++)
    174         {
    175             printf("%3d",B[i][j]);
    176         }
    177         printf("
    ");
    178     }
    179 }

  • 相关阅读:
    Python基础之subprocess
    Python基础之读取ini文件
    Python如何将py文件打包成exe
    C++第四十一篇 -- 安装成功的第一个驱动文件
    C++第四十篇 -- 研究一下Windows驱动开发(三)-- NT式驱动的基本结构
    C++第三十九篇 -- 研究一下Windows驱动开发(二)-- 驱动程序中重要的数据结构
    C++第三十八篇 -- 研究一下Windows驱动开发(二)--WDM式驱动的加载
    C++第三十七篇 -- 调试驱动程序
    iis提示“另一个程序正在使用此文件,进程无法访问。(异常来自HRESULT:0x80070020) ”解决办法
    Serv-U无法上传“中文文件夹”的问题(没有权限)
  • 原文地址:https://www.cnblogs.com/sun-/p/5024025.html
Copyright © 2011-2022 走看看