當前位置:首頁 » 編程語言 » 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");
}
}