怎样用C语言编写一个程序,实现5乘以5矩阵乘法,并将输入输出结果显示出来啊?

编译过程请详细解释一下,给高分。

#include<stdio.h>
#include<stdlib.h>
#define RA 5 /*矩阵A的行数*/
#define CA 5 /*矩阵A的列数*/
#define RB 5 /*矩阵B的行数*/
#define CB 5 /*矩阵B的列数*/

main()
{
int A[RA][CA];
int B[RB][CB];
int C[RA][CB];
int i,j,k;
printf("1");
/*随机生成矩阵A*/
randomize();
for(i=0;i<RA;i++)
{ for(j=0;j<CA;j++)
A[i][j]=random(20); }

/*随机生成矩阵B*/
randomize();
for(i=0;i<RB;i++)
{ for(j=0;j<CB;j++)
B[i][j]=random(20); }

/*输出矩阵A*/
printf("\nMatrix A");
for(i=0;i<RA;i++){
printf("\n");

for(j=0;j<CA;j++)
printf("%4d",A[i][j]);
printf("\n");
}

/*输出矩阵B*/
printf("\nMatrix B");
for(i=0;i<RB;i++){
printf("\n");

for(j=0;j<CB;j++)
printf("%4d",B[i][j]);
printf("\n");
}

/*两个矩阵相乘*/

for(i=0;i<=RA;i++)
for(j=0;j<CB;j++)
{
C[i][j]=0;
for(k=0;k<RA;k++)
C[i][j]+=A[i][k]*B[k][j];
}

/*输出结果矩阵*/
printf("\nMatrix A*B\n");
for(i=0;i<RA;i++){
printf("\n");
for(j=0;j<CB;j++)
printf("%4d",C[i][j]);
printf("\n");

} getch();
}

你也可以把随机生成矩阵改成你往矩阵里输数
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-12
for(x=0;x<5x++)
{
for(y=0;y<5;y++)
{
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
sum+=a[i][j]*b[j][i];
}
}
cout<<sum;
}
cout<<endl;
}
最外面两个循环是用来输出的,里面两个循环用来计算的。最后cout<<endl;是用来输出5个后换行的。
相似回答