c语言if函数输出*矩阵,编写一个函数,用于执行两个矩阵的乘法.要求:数据输入输出在主函数中完成,用函数实现运算....

问题描述:

编写一个函数,用于执行两个矩阵的乘法.要求:数据输入输出在主函数中完成,用函数实现运算.

c语言

1个回答

分类:

综合

2014-10-19

问题解答:

我来补答

C源程序:

#include "stdio.h"

#define MAX 100

/* 矩阵 arrA(rowA * colA) * arrB(rowB * colB) */

void arrayMultiply(int arrA[][MAX], int rowA, int colA, int arrB[][MAX], int rowB, int colB, int arrC[][MAX])

{

\x05int i, j, k;

\x05if(colA != rowB)

\x05{

\x05\x05printf("这两个矩阵不能相乘\n");

\x05\x05return ;

\x05}

\x05for(i=0; i

\x05{

\x05\x05for(j=0; j

\x05\x05{

\x05\x05\x05arrC[i][j] = 0;

\x05\x05\x05for(k=0; k

\x05\x05\x05{

\x05\x05\x05\x05arrC[i][j] += arrA[i][k] * arrB[k][j];

\x05\x05\x05}

\x05\x05}

\x05}

}

void main()

{

\x05int arrA[MAX][MAX];

\x05int arrB[MAX][MAX];

\x05int arrC[MAX][MAX];

\x05int i, j;

\x05int rowA, colA, rowB, colB, rowC, colC;

\x05printf("rowA : ");

\x05scanf("%d", &rowA);

\x05printf("colA : ");

\x05scanf("%d", &colA);

\x05for(i=0; i

\x05\x05for(j=0; j

\x05\x05\x05scanf("%d", &arrA[i][j]);

\x05printf("rowB : ");

\x05scanf("%d", &rowB);

\x05printf("colB : ");

\x05scanf("%d", &colB);

\x05for(i=0; i

\x05\x05for(j=0; j

\x05\x05\x05scanf("%d", &arrB[i][j]);

\x05if(colA != rowB)

\x05{

\x05\x05printf("这两个矩阵不能相乘,第一个矩阵的列数必须等于第二个矩阵的行数\n");

\x05\x05return ;

\x05}

\x05rowC = rowA;

\x05colC = colB;

\x05arrayMultiply(arrA, 2, 3, arrB, 3, 4, arrC);

\x05printf("arrC : \n");

\x05for(i=0; i

\x05{

\x05\x05for(j=0; j

\x05\x05{

\x05\x05\x05printf("%6d", arrC[i][j]);

\x05\x05}

\x05\x05printf("\n");

\x05}

}

运行测试:

展开全文阅读

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值