怎样用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个后换行的。

怎样用C语言编写一个程序,实现5乘以5矩阵乘法,并将输入输出结果显示出 ...
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...

实现一个5X5矩阵乘法,并将输入输出结果显示出来
void main(){ int a[5][5],b[5][5];printf("输入a矩阵的元素:\\n");int i,j,k;for(i=0;i<=4;i++)for(j=0;j<=4;j++)scanf("%d",*(a+i)+j);printf("输入b矩阵的元素:\\n");for(i=0;i<=4;i++)for(j=0;j<=4;j++)scanf("%d",*(b+i)+j);int c[5][5...

C语言5×5的矩阵乘法
void main(){ int a[5][5],b[5][5];printf("输入a矩阵的元素:\\n");int i,j,k;for(i=0;i<=4;i++)for(j=0;j<=4;j++)scanf("%d",*(a+i)+j);printf("输入b矩阵的元素:\\n");for(i=0;i<=4;i++)for(j=0;j<=4;j++)scanf("%d",*(b+i)+j);int c[5][5...

c语言矩阵的乘法
1. 定义三个二维数组分别存放两个矩阵和结果矩阵。2. 赋值两个矩阵的元素并打印。3. 使用for循环遍历矩阵,对每个元素进行乘法运算和累加,将结果存储在结果矩阵对应位置。4. 最后输出结果矩阵。代码示例如下:通过`#include`预处理指令引入C语言标准库。`int main()`函数开始。定义三个二维数组,分别...

c语言 矩阵乘法
矩阵乘法程序实现动态内存分配。代码如下:包括头文件 #include。定义函数 matrix,参数包括两个矩阵 b 和 c 指针,一个矩阵 a 指针,以及矩阵的行数、列数。函数内部使用嵌套循环实现矩阵乘法,具体步骤为:外层循环控制矩阵 a 的元素遍历,中间层循环遍历矩阵 b 和 c 的元素,内层循环累加结果。主...

求一个 矩阵乘法的C语言程序
include "stdlib.h"void main (){ int m,l,p,q;printf("输入第一个矩阵的维数m和l:\\n");scanf("%d%d",&m,&l);printf("输入第二个矩阵的维数p和q:\\n");scanf("%d%d",&p,&q);while (l!=p){ printf("两个矩阵不匹配,不能进行相乘运算,请重新输入...\\n\\n");printf("输入...

C语言编程:编写一个函数,实现矩阵的乘法。
然后定义另外一个数组,用来得到结果距阵,再用三个嵌套的for将结果放入第三个数组当中,即c[i][j]=a[i][k]+b[k][j],k是在第三重循环,这样就可以得到要求的距阵,如果不确定大小长度就在输入语句的每个for循环的辖区内加一个变量作为标记程序运行时求出距阵的大小 ...

c语言矩阵的乘法
int n;int array[100][100];}Ju_def;int main(){ Ju_def Ju[11];int i=0,m,n,k;int flag[10];while(1){ flag[i]=0;printf("In put m and n:\\n");scanf("%d%d",&Ju[i].m,&Ju[i].n);while(Ju[i].m<=0||Ju[i].m>100||Ju[i].n<=0||Ju[i].m>100){ pr...

c语言矩阵运算
矩阵乘法程序,动态分配内存:include<stdio.h> \/\/ b[j][k] * c[k][i] = a[j][i]void matrix(int **b,int **c, int **a, int nx, int ny, int nk){ int i,j,k;for (j=0;j<ny;j++)for(i=0;i<nx;i++)a[j][i]= 0;for(j=0;j<ny;j++){ for(i=0;i<nx...

用C语言写一个两个矩阵相乘的函数
include<stdio.h> define M 5 define P 4 define N 3 void mltp(float (*a)[P],float (*b)[N],float (*c)[N])\/\/void mltp(float *a,float *b,float *c){ for(int i=0;i<M;i++)for(int j=0;j<N;j++)for(int k=0;k<P;k++)c[i][j]+=a[i][k]*b[k][j];...

相似回答