题目:输入一个2*3的整数矩阵和一个3*2的整数矩阵,请使用指针数组实现这两个矩阵的相乘。
) D8 }% Z+ `) H5 v& K3 p#include<stdio.h>) I. P' m' @' }' |
main()" ^% h- s1 i v
{static int a[2][3],b[3][2],result[2][2];) \/ m" j1 V' |. x' c8 h
int *p[3];
4 W2 j, K! A( `$ b) {6 {p[0]=a[0];p[1]=b[0];p[2]=result[0];" f5 U% Z, S9 y
printf("\n the 1st matrix;\n");
6 d( }" w' V2 o2 f3 i& V; vfor(int i=0;i<2;i++)
( k" t8 D: t" F{printf("new line:\n");
3 n8 E' I% t1 O6 [8 s" _; ^for(int j=0;j<3;j++). u, S; t, b5 P8 e4 p
scanf("%d",p[0]+3*i+j);& S% m4 o6 |& X4 X& B& |
}3 C4 U$ T0 B& K; ]) l3 K2 ?0 e
printf("\n the 2st matrix;\n");/ { |7 t; ^ l4 L5 w
for(int i=0;i<3;i++)/ f4 Y% m" u# D$ P7 Q
{printf("new line:\n");& W8 @- B: T4 ^4 I
for(int j=0;j<2;j++)
+ b- C# o: E P H; Q! _scanf("%d",p[1]+2*i+j);8 `5 s5 N" x$ ?1 |
}# X8 P. _5 O f3 n B0 I: c
/以下的开始相乘/
9 c0 f0 D% Z" {. O6 V8 K1 Ffor(int i=0;i<2;i++)8 F' R" E( N% u. O8 l
for(int j=0;j<3;j++) t2 L5 [ x! m& F, J L
for(int k=0;k<2;k++)
( {: [/ [9 f! B*(p[2]+2*i+k)+=*(p[0]=3*i+j)*(*(p[1]+2*j+k));
8 a& D. @7 a8 z7 \6 Y8 V- yfor(int i=0;i<2;i++)
9 b7 a/ b9 t" p2 l( Z' b{printf("\n");4 Y C, [# q- k- ?9 j I1 v
for(int j=0;j<2;j++)
# z p: F( O0 N0 I& Rprintf("%d,",*(p[2]+2*i+j));
9 E7 f9 @) x' n7 ~, q0 u}
% \9 }, `+ C+ t& v+ M4 g}
$ z4 x6 I7 ], y5 {8 K% f完毕。就是相乘的那一段不明白,请指教( a# x) d, V; [8 }0 M4 Z