当前位置:首页 » 编程语言 » c语言求两个矩阵的积流程图
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言求两个矩阵的积流程图

发布时间: 2023-07-20 09:19:47

c语言:编写程序,计算两个3×4矩阵的和

#include<stdio.h>

int main()

{

int a[3][4],b[3][4],c[3][4];

for(int i=0;i<3;i++)

for(int j=0;j<4;j++)

scanf("%d",&a[i][j]);

printf(" ");

for(int i=0;i<3;i++)

for(int j=0;j<4;j++)

scanf("%d",&b[i][j]);

printf(" ");

for(int i=0;i<3;i++)

for(int j=0;j<4;j++)

{

c[i][j]=a[i][j]+b[i][j];

printf("%d",c[i][j]);

if(j!=3)

printf(" ");

else

printf(" ");

}

return 0;

}

② 用c语言实现两个矩阵相乘怎么做

1、程序运行输入数据时,第一行为A矩阵的行列数和B矩阵的行列数,接着分别输入A、B两个矩阵的值。

③ 怎样用C语言去编程两个3*3矩阵之和,之差,之积

/****************************************************************************/
/*题目:矩阵加减乘演示*****/
/*作者:vc99 writed for c bar***/
/*日期:***/
/*简介:本演示引入第三个矩阵来保存运算结果,以达到连续运算的目的。***/
/***************************************************************************/

# include <stdio.h>
# define X 3
# define Y 3

/**********输出数组*******/
void prt(int a[X][Y])
{
int i,j;
for(i=0;i<X;i++)
{
for(j=0;j<Y;j++)
printf(" %5d",a[i][j]);
printf("\n");
}
}

/************输入数组*********/
void inp(int a[X][Y])
{
int i,j,t;
for(i=0;i<Y;i++)
for(j=0;j<Y;j++)
{
printf("a[%d][%d]=",i,j);/**提示输入第几个矩阵元素 ****/
scanf("%d",&t);
a[i][j]=t;
}
}

/********矩阵加,结果保存于c[][]*********/
void madd(int a[X][Y],int b[X][Y],int m[X][Y])
{
int i,j;
for(i=0;i<X;i++)
for(j=0;j<Y;j++)
m[i][j]=a[i][j]+b[i][j];/***矩阵加****/
prt(m);
}

/********矩阵减,结果保存于c[][]****/
void msub(int a[X][Y],int b[X][Y],int m[X][Y])
{
int i,j;
for(i=0;i<X;i++)
for(j=0;j<Y;j++)
m[i][j]=a[i][j]-b[i][j];/***矩阵减****/
prt(m);
}

/*******矩阵乘,结果保存于c[][]******/
void mmul(int a[X][Y],int b[X][Y],int m[X][Y])
{
int i,j,k;
for(i=0;i<X;i++)
for(j=0;j<Y;j++)
m[i][j]=0;

for(i=0;i<X;i++)
for(j=0;j<Y;j++)
for(k=0;k<Y;k++)
m[i][j]+=a[i][k]*b[k][j];/***矩阵乘****/
prt(m);
}

int main()
{
int sel=0,agn=1,cpt=1;
int a[X][Y], b[X][Y], m[X][Y];
while(agn==1)
{
printf("请输入矩阵a!\n");
inp(a);
printf("请输入矩阵b!\n");
inp(b);
while (cpt==1)
{
printf("请选择矩阵运算:[1]+ [2]- [3]*\n\t");
scanf("%d",&sel);
if (sel==1) madd(a,b,m);
if (sel==2) msub(a,b,m);
if (sel==3) mmul(a,b,m);
printf("重新运算?[1]是 [0]否");
scanf("%d",&cpt);
}
printf("是否重新输入矩阵?[1]是 [0]否");
scanf("%d",&agn);
}
return 0;
}
参考资料:http://..com/question/43640208.html?si=1

④ C语言:编写完整程序:计算两个矩阵的乘积。

#include
"stdio.h"
#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("输入第一个矩阵的维数m和l:\n");
scanf("%d%d",&m,&l);
printf("输入第二个矩阵的维数p和q:\n");
scanf("%d%d",&p,&q);
}
double
a[200][200]={0},
b[200][200]={0},sum=0;
int
i,j,k=0;
for
(i=0;i<m;i++)
{
for
(j=0;j<l;j++)
{
a[i][j]=(double)rand()/RAND_MAX;
}
}
printf("随机矩阵a是:\n");
for
(i=0;i<m;i++)
{
for
(j=0;j<l;j++)
{
printf("%f
",a[i][j]);
}
printf("\n");
}
//cout<<"输入一个3*2的矩阵:"<<endl;
for
(i=0;i<p;i++)
{
for
(j=0;j<q;j++)
{
b[i][j]=(double)rand()/RAND_MAX;
}
}
printf("随机矩阵b是:\n");
for
(i=0;i<p;i++)
{
for
(j=0;j<q;j++)
{
printf("%f
",b[i][j]);
}
printf("\n");
}
printf("ab相乘结果为:\n");
for
(i=0;i<m;i++)
{
while
(k<q)
{
for
(j=0;j<q;j++)
{
sum
=
a[i][j]*b[j][k]+sum;
}
printf("%f
",sum);
k++;
sum=0;
}
k=0;
printf("\n");
}
}