zoukankan      html  css  js  c++  java
  • C和指针笔记——数组的乘法

     1 //code by zzlpp
     2 #include <stdio.h>
     3 #include <stdlib.h>
     4 
     5 void matrix_multiply( int *m1,int  *m2,int *r,
     6                      int const x,int const y,int const z );
     7 
     8 
     9 int main( void )
    10 {
    11     //初始化原始矩阵
    12     int m1[3][1]={1,2,3},
    13         m2[1][3]={3,2,1},
    14         r[3][3]={{},{},{}};
    15 
    16     int i,
    17         j;
    18     //调用函数
    19     matrix_multiply(*m1,*m2,*r,3,1,3);
    20     //打印得到的矩阵
    21     for ( i=0;i<3;i++ )
    22     {
    23         for ( j=0;j<3;j++ )
    24         {
    25             printf("%d ",r[i][j]);
    26         }
    27         printf("
    ");
    28     }
    29     system( "pause" );
    30     return 0;
    31 }
    32 
    33 void matrix_multiply( int *m1,int *m2,int *r,
    34                      int const x,int const y,int const z )
    35 {
    36     int row,            //对应x
    37         column,            //对应y
    38         direction;        //对应z
    39     int *m1_cpy,
    40         *m2_cpy;
    41     for ( row=0;row<x;row++ )
    42     {
    43         for ( direction=0;direction<z;direction++ )
    44         {
    45             m1_cpy=m1+row*y;
    46             m2_cpy=m2+direction;
    47             for ( column=0;column<y;column++ )
    48             {
    49                 *r+=(*m1_cpy)*(*m2_cpy);
    50                 m1_cpy+=1;
    51                 m2_cpy+=direction;
    52             }
    53             r++;
    54         }
    55     }
    56 }

      这个代码主要是熟悉多维数组,在函数传递的时候要注意方法,同时在函数中操作多维数组也需要方法,这里如果使用下表引用是行不通的,必须设置一个专门的变量当做下表使用(如文中的row,column,direction)。当然我的认识是片面的,多多海涵。

      

  • 相关阅读:
    228. Summary Ranges
    227. Basic Calculator II
    224. Basic Calculator
    222. Count Complete Tree Nodes
    223. Rectangle Area
    221. Maximal Square
    220. Contains Duplicate III
    219. Contains Duplicate II
    217. Contains Duplicate
    Java编程思想 4th 第4章 控制执行流程
  • 原文地址:https://www.cnblogs.com/zzlpp/p/4550597.html
Copyright © 2011-2022 走看看