《C编程技巧:117个问题解决方案示例 》 —3.12 计算矩阵的乘积

举报
华章计算机 发表于 2020/02/12 15:38:56 2020/02/12
【摘要】 本节书摘来自华章计算机《C编程技巧:117个问题解决方案示例 》 一书中第3章,第3.12节,作者是希里什·查万(Shirish Chavan),卢涛 译。

3.12 计算矩阵的乘积

问题

你想要计算矩阵A和B的乘积。

解决方案

编写一个C程序,计算矩阵A和B的乘积,使得A×B=C(C也是矩阵,见图3-8),使用以下规格说明:

程序要求用户输入矩阵A的秩和矩阵B中的列数。程序还在屏幕上显示矩阵A和B。

程序包含三个函数:input()、output()和product()。函数input()接受来自键盘的数据,函数output()在屏幕上显示矩阵,函数product()计算矩阵A和B的乘积并填充矩阵C中的数据值。

程序计算矩阵A和B的乘积,并在屏幕上显示结果。

 image.png

图3-8 矩阵A和B的乘积,使得A×B=C

代码

以下是使用这些规格说明编写的C程序的代码。在文本编辑器中键入以下C程序,并将其保存在文件夹C:\Code中,文件名为promat.c:

 image.png

image.png

image.png

编译并执行此程序。这个程序的运行结果在这里给出:

 image.png

工作原理

此程序包含三个do-while循环。第一个do-while循环接受矩阵A的行数的整数值,范围为1≤M≤8。第二个do-while循环接受矩阵A的列数的整数值,范围为1≤N≤8。第三个do-while循环接受矩阵B的列数的整数值,范围为1≤P≤8。LOC 26和32分别调用函数input()并接受矩阵A和B的数据。LOC 29和35分别调用函数output()并在屏幕上显示矩阵A和B。LOC 37调用函数product(),执行矩阵A和B的乘积,并填充矩阵C中的值。LOC 39调用函数output()并在屏幕上显示矩阵C。LOC 44~53定义了函数input()。LOC 54~65定义了函数output()。LOC 66~80定义了函数product()。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。