① 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");
}
}