矩阵用c语言表达式,C语言实现的矩阵加减乘法

满意答案

#include

/*

m1和m2为两个相加的数组首元素地址,r和c为两个数组的行数和列数

m用于存放结果。

调用该函数时,要求m为有足够存储单元、能容纳运算结果的数组首元素地址

*/

void add(int *m,int *m1,int *m2,int r,int c);

void sub(int *m,int *m1,int *m2,int r,int c);

void mult(int *m,int *m1,int *m2,int r,int p,int c);

void disp(int *m,int r,int c);

void main()

{

int a[3][4]={{2,4,6,8},{1,3,5,7},{11,33,44,22}};

int b[3][4]={{2,-4,6,-8},{-1,3,-5,7},{11,-33,-44,22}};

int c[4][3]={{2,4,6},{1,3,5},{1,0,3},{0,2,4}};

int d[3][4]={0};

int e[3][3]={0};

printf("\nA(3x4):\n");

disp(a[0],3,4);

printf("\nB(3x4):\n");

disp(b[0],3,4);

add(d[0],a[0],b[0],3,4);

printf("\nD(3x4)=A+B:\n");

disp(d[0],3,4);

sub(d[0],a[0],b[0],3,4);

printf("\nD(3x4)=A-B:\n");

disp(d[0],3,4);

printf("\nA(3x4):\n");

disp(a[0],3,4);

printf("\nC(4x3):\n");

disp(c[0],4,3);

mult(e[0],a[0],c[0],3,4,3);

printf("\nE(3x3)=A*C:\n");

disp(e[0],3,3);

}

void add(int *m,int *m1,int *m2,int r,int c){

int i,j;

for(i=0; i

for(j=0; j

*(m+i*c+j) = *(m1+i*c+j) + *(m2+i*c+j);

}

void sub(int *m,int *m1,int *m2,int r,int c){

int i,j;

for(i=0; i

for(j=0; j

*(m+i*c+j) = *(m1+i*c+j) - *(m2+i*c+j);

}

void mult(int *m,int *m1,int *m2,int r,int p,int c){

int i,j,k,t;

for(i=0; i

for(j=0; j

{

t=0;

for(k=0; k

t += *(m1+i*p+k) * *(m2+k*c+j);

*(m+i*c+j)=t;

}

}

void disp(int *m,int r,int c)

{

int i,j;

for(i=0; i

{

for(j=0; j

printf("%6d",*(m+i*c+j));

printf("\n");

}

}

00分享举报

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值