zoukankan      html  css  js  c++  java
  • 电子科大POJ "3*3矩阵的乘法"

     3阶矩阵的乘法

    Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)




    c-source:
     1 #include<stdio.h>
     2 #define M 3 
     3 #define N 3
     4 void main()
     5 {
     6     int t[M][N],b[M][N];
     7     int n;
     8 
     9     printf("The number of n:
    ");
    10     scanf("%d",&n);
    11 
    12     
    13     int **answer=new int *[n]; 
    14     for(int i=0;i<n;i++) 
    15         answer[i] = new int[9]; 
    16 
    17     for(int q1=0;q1<n;q1++)
    18         for(int q2=0;q2<9;q2++)
    19             answer[q1][q2]=0;
    20     
    21     for(int k=0;k<n;k++)
    22     {
    23         for(int i1=0;i1<M;i1++)
    24             for(int j5=0;j5<N;j5++)
    25                 scanf("%d",&t[i1][j5]);
    26         
    27         
    28         for(int i2=0;i2<M;i2++)
    29             for(int j2=0;j2<N;j2++)
    30                 scanf("%d",&b[i2][j2]);
    31         
    32         printf("
    ");
    33 
    34         for(int i3=0;i3<M;i3++)
    35             for(int j3=0;j3<N;j3++)
    36             {
    37                 for(int q=0;q<M;q++)
    38                 {
    39                 answer[k][i3*M+j3]+=t[i3][q]*b[q][j3];
    40                 }    
    41             }
    42     }
    43     
    44     for(int p=0;p<n;p++)
    45     {
    46         for(int j4=0;j4<9;j4++)
    47             {
    48             if(j4%3==0)
    49                     printf("
    ");
    50                 printf("%d ",answer[p][j4]);
    51             }
    52             printf("
    
    ");
    53     }
    54     
    55     for(i=0;i<n;++i) 
    56         delete[] answer[i]; 
    57     delete[] answer; 
    58 }

    知识点:
     
    ⒈new二维数组M*N;
    1   int **a=new int *[M];
    2   for(int i=0;i<M;i++)
    3   a[i]=new int[N];
    ⒉动态分配必须由程序自行释放空间:
    for(int j=0;j<M;j++)
      delete[] a[j];
      delete [] a;

    M*P与P*N维矩阵相乘的问题:
    1 for(int i=0;i<M;i++)
    2     for(int j=0;j<N;j++)
    3     {
    4         for(int k=0;k<p;k++)
    5             answer[i][j]+=a[i][k]*a[k][j];
    6     }
    7         
    作者:vpoet
    点击这里给我发消息
    出处:http://www.cnblogs.com/vpoet/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    查看Android应用所需权限(uses-permission)
    Android Camera后台拍照
    傅里叶变换
    linux文件系统问题:wrong fs type, bad option, bad superblock
    H3 android 系统编译
    开源股票数据工具
    获取股票实时交易数据的方法
    获取历史和实时股票数据接口
    CRC在线计算工具
    硬盘自动挂载
  • 原文地址:https://www.cnblogs.com/vpoet/p/4659772.html
Copyright © 2011-2022 走看看