好家伙,实现矩阵相乘功能

代码如下:

void fifth()//矩阵的相乘//
{
int a[100][100],b[100][100];
int d,e,f,h,j,k,t;
double sum;
double c[100][100];
printf("请输入第一个矩阵行数和列数;\n");
scanf("%d%d",&d,&e);
printf("请输入矩阵中的数字:\n");
for(f=0;f<d;f++)
{
for(h=0;h<e;h++)
{
printf("请输入第%d行第%d列的数字",f,h);
scanf("%d",&a[f][h]);
}
}
printf("请输入第二个矩阵行数和列数.\n");
scanf("%d%d",&j,&k);
printf("请输入矩阵中的数字:\n");
for(f=0;f<j;f++)
{
for(h=0;h<k;h++)
{
printf("请输入第%d行第%d列的数字",f,h);
scanf("%d",&b[f][h]);
}
}
if(e==j)//矩阵相乘只有在左边矩阵的列数等于右边矩阵的行数时才能相乘
{
for(f=0;f<d;f++)
{ for(h=0;h<k;h++)
{
sum=0;
for(t=0;t<e;t++)
{
sum+=a[f][t]*b[t][h];
}
c[f][h]=sum;
}
printf("\n");
}
for(f=0;f<d;f++)
{ for(h=0;h<k;h++)
{
printf("%6.2f",c[f][h]);
}
printf("\n");
}
}
else
{
printf("该输入的矩阵无法相乘,因为输入左边的矩阵的列数不等于右边矩阵的行数。\n");
} }

2. (fifth)函数 矩阵的相乘

核心算法部分:

(按照公式计算出最终矩阵的值,其中d,e是第一个矩阵的行数和列数,j,k是第二个矩阵的行数和列数)

         for(f=0;f<d;f++)

                   {

                  

                            for(h=0;h<k;h++)

                            {

                                     sum=0;

                                     for(t=0;t<e;t++)

                                     {

                                               sum+=a[f][t]*b[t][h];

                                     }

                                     c[f][h]=sum;

                            }

算法分析:

此处使用三个for循环,

第一层for循环控制第一个矩阵的行数(f),

第二层for循环控制控制第一个矩阵的列数和第二个矩阵的行数,(t)

第三个for循环控制第二个矩阵的列数,(h)

以(t++)为点

测试样例:

         输入:2 3\n 1\n 2\n 3\n 4\n 5\n 6\n

                    2 3\n 1\n 2\n 3\n 4\n 5\n 6\n

 

         输出:7.00 10.00

                 19.00 28.00

测试图片:

看上去可行

C语言:多功能计算器 (矩阵相乘)的更多相关文章

  1. C语言:多功能计算器程序说明书

    好家伙,3000字终于写完了 一.题目:多功能科学计算器 二.内容: (1)概述或引言 开发环境为Visual C++ 目前已实现的功能: (1)解二元一次方程.一元二次方程 (2)进行矩阵相加.相减 ...

  2. 实现两个矩阵相乘的C语言程序

    程序功能:实现两个矩阵相乘的C语言程序,并将其输出 代码如下: #include "stdafx.h" #include "windows.h" void Mu ...

  3. C语言:多功能计算器

    好家伙,这个东西有点折磨 这是一个多功能计算器 #include<stdio.h> #include<math.h> #include<windows.h> voi ...

  4. C语言 · 矩阵相乘 · 算法提高

    算法提高 矩阵相乘   时间限制:1.0s   内存限制:256.0MB      问题描述 小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊),可惜他的老师正在讲这矩阵乘法这一段内容. 当然 ...

  5. R语言编程艺术#02#矩阵(matrix)和数组(array)

    矩阵(matrix)是一种特殊的向量,包含两个附加的属性:行数和列数.所以矩阵也是和向量一样,有模式(数据类型)的概念.(但反过来,向量却不能看作是只有一列或一行的矩阵. 数组(array)是R里更一 ...

  6. 【神经网络与深度学习】【C/C++】比较OpenBLAS,Intel MKL和Eigen的矩阵相乘性能

    比较OpenBLAS,Intel MKL和Eigen的矩阵相乘性能 对于机器学习的很多问题来说,计算的瓶颈往往在于大规模以及频繁的矩阵运算,主要在于以下两方面: (Dense/Sparse) Matr ...

  7. HDU1575Tr A(矩阵相乘与快速幂)

    Tr A hdu1575 就是一个快速幂的应用: 只要知道怎么求矩阵相乘!!(比赛就知道会超时,就是没想到快速幂!!!) #include<iostream> #include<st ...

  8. <矩阵的基本操作:矩阵相加,矩阵相乘,矩阵转置>

    //矩阵的基本操作:矩阵相加,矩阵相乘,矩阵转置 #include<stdio.h> #include<stdlib.h> #define M 2 #define N 3 #d ...

  9. 利用Hadoop实现超大矩阵相乘之我见(二)

    前文 在<利用Hadoop实现超大矩阵相乘之我见(一)>中我们所介绍的方法有着“计算过程中文件占用存储空间大”这个缺陷,本文中我们着重解决这个问题. 矩阵相乘计算思想 传统的矩阵相乘方法为 ...

随机推荐

  1. SAP SD-Invoice 销售发票

    针对销售订单的发票流程: 1. 事务码:VF01(个别生成系统发票) 创建开票凭证(发票)/  VF04 开具系统发票(可把多个item 合并成一张系统发票) 2. 事务码:VF02 修改发票, 释放 ...

  2. Spring IOC 为什么能降低耦合

    有同学在学习 Spring 框架中可能会问这样的问题,为什么通过依赖注入就可以降低代码间的耦合呢?我通过 new 生产对象不也可以吗,不就是一行代码的不同,一个是 @Resource 注入,一个是 n ...

  3. sql-sql优化

    SQL执行流程 a. 编写过程: select dinstinct .. from .. join .. on .. where .. group by .. having .. order by . ...

  4. Future源码一观-JUC系列

    背景介绍 在程序中,主线程启动一个子线程进行异步计算,主线程是不阻塞继续执行的,这点看起来是非常自然的,都已经选择启动子线程去异步执行了,主线程如果是阻塞的话,那还不如主线程自己去执行不就好了.那会不 ...

  5. Detecting Rumors from Microblogs with Recurrent Neural Networks(IJCAI-16)

    记录一下,很久之前看的论文-基于RNN来从微博中检测谣言及其代码复现. 1 引言 现有传统谣言检测模型使用经典的机器学习算法,这些算法利用了根据帖子的内容.用户特征和扩散模式手工制作的各种特征,或者简 ...

  6. 在 SQL Server 中使用 Try Catch 处理异常

    如何在 SQL Server 中使用 Try Catch 处理错误? 从 SQL Server 2005 开始,我们在TRY 和 CATCH块的帮助下提供了结构错误处理机制.使用TRY-CATCH的语 ...

  7. 吐泡泡_via牛客网

    题目 链接:https://ac.nowcoder.com/acm/contest/28537/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言 ...

  8. 造!又有新的生产力语言了「GitHub 热点速览 v.22.30」

    作者:HelloGitHub-小鱼干 你还记得那些 PHP 开发都去哪了吗?转 Golang 了!移动端现在流行什么?Flutter 编程.现在谷歌带着新的生产力语言来了,Carbon,代号:C++ ...

  9. Modbus转OPC

    在这里给大家介绍一种低成本的将Modbus RTU协议的串口设备接入到OPC UA的服务器呢? OPC全称是OLE(Object Linking and Embedding) for Process ...

  10. 使用 Redis 源码编译发布 Windows 版 Redis For Windows 发行包

    Redis 是个高性能的键值数据库,现在日常项目开发过程中,目前个人开发项目基本都会用到 Redis,主要是用来做 缓存 和 分布式锁 的底层支持,个人喜欢用 .NET 技术体系,所以一般部署也是用 ...