文档章节

C语言动态数组在矩阵相乘中的应用

l
 luhongling
发布于 2012/09/05 08:50
字数 366
阅读 224
收藏 0

本文运用动态数组技术编制了C语言矩阵相乘的程序.

  1: #include <stdio.h>
  2: #include <stdlib.h>
  3: 
  4: main()
  5: {
  6:    int i,j,k,sss,**p1,**p2,**p3;
  7:    
  8:    /* Request the first block of heap memory for the first matrix.*/
  9:    p1=(int**)malloc(2*sizeof(int*));
 10:    for(i=0;i<=1;i++)
 11:    {
 12:       p1[i]=(int*)malloc(3*sizeof(int));
 13:    }
 14:    
 15:    /* Request the second block of heap memory for the second matrix.*/
 16:    p2=(int**)malloc(3*sizeof(int*));
 17:    for(i=0;i<=2;i++)
 18:    {
 19:       p2[i]=(int*)malloc(2*sizeof(int));
 20:    }
 21: 
 22:    /* Request the third block of heap memory for the third matrix */
 23:    p3=(int**)malloc(3*sizeof(int*));
 24:    for(i=0;i<=2;i++)
 25:    {
 26:       p3[i]=(int*)malloc(3*sizeof(int));
 27:    }
 28: 
 29:    /* Assign the first matrix. */
 30:    printf("The first matirx:\n");
 31:    for(i=0;i<=1;i++)
 32:    {
 33:       for(j=0;j<=2;j++)
 34:       {
 35:          p1[i][j]=(i+1)*10+(j+1);
 36:          printf("%d\t",p1[i][j]);
 37:       }
 38:       printf("\n");
 39:    }
 40: 
 41:    printf("The second matirx:\n");
 42:    /* Assign the second matrix. */
 43:    for(i=0;i<=2;i++)
 44:    {
 45:       for(j=0;j<=1;j++)
 46:       {
 47:          p2[i][j]=(i+1)*10+(j+1)*1;
 48:          printf("%d\t",p2[i][j]);
 49:       }
 50:       printf("\n");
 51:    }
 52:    
 53:    printf("The product:\n");
 54:    /* Calculate the product of the two matrice. */
 55:    for(i=0;i<=1;i++)
 56:    {
 57:       for(j=0;j<=1;j++)
 58:       {
 59:          sss=0;
 60:          for(k=0;k<=2;k++)
 61:          {
 62:             sss=sss+(p1[i][k])*(p2[k][j]);
 63:          }
 64:          p3[i][j]=sss;
 65:          printf("%d\t",p3[i][j]);
 66:       }
 67:       printf("\n");
 68:    } 
 69: }
 70: 

运行结果:

The first matirx:
11    12    13   
21    22    23   
The second matirx:
11    12   
21    22   
31    32   
The product:
776    812   
1406    1472   

© 著作权归作者所有

l
粉丝 2
博文 6
码字总数 2240
作品 0
南京
私信 提问
MATLAB中的点运算与常规运算符规则

例如 .* 点乘 .^ 点乘幂 . 点左除 ./ 点右除 解释:点运算是对相同维数的矩阵的对应元素进行相应的运算。 矩阵的点积,就是加点的情况 就是矩阵各个对应元素相乘, 这个时候要求两个矩阵必须同...

Dhfijk
2017/07/07
0
0
MATLAB入门基础

预定义变量 >> format short e>> RMAd = realmax('double') %双精度类型默认最大实数 RMAd = 1.7977e+308 RMAs = realmax('single') %单精度类型最大实数 RMAs = 3.4028e+38>> IMA64 = intm......

SVD
2016/01/26
196
0
矩阵乘法和矩阵的幂

1、通常用二维数组表示一个矩阵。求矩阵M和矩阵N相乘,要求M的列和N的行相等,即矩阵M的列数等于 M[0].length;矩阵N的行数等于N.length;即M[0].length=N.length时,两个矩阵才能进行乘法运...

笨拙的小Q
2016/08/13
41
0
蓝杯二十六

/*算法训练 动态数组使用 时间限制:1.0s 内存限制:512.0MB 提交此题 从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出。 要求尽可能使用函数实现程序代码...

陌尘_9353
2018/01/22
0
0
[LeetCode] Sparse Matrix Multiplication 稀疏矩阵相乘

Given two sparse matrices A and B, return the result of AB. You may assume that A's column number is equal to B's row number. Example: A = [[ 1, 0, 0],[-1, 0, 3]]B = [[ 7, 0, 0 ......

机器的心脏
2017/12/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Tensorflow 2.0安装

Tensorflow2.0安装环境: Ubuntu 16.04或更高(64位) Windows 7或者更高(64位,且支持python3) 安装Tensorflow 2.0 GPU版本的需要安装NVIDIA相关软件包: NVIDIA驱动 :版本必须410.x或更...

JosiahMg
9分钟前
1
0
TL138/1808/6748F-EasyEVM开发板硬件、CPU、FLASH、RAM

TL138/1808/6748F-EasyEVM是广州创龙基于SOM-TL138/SOM-TL1808/SOM-TL6748F核心板开发的一款开发板。由于SOM-TL138/SOM-TL1808/SOM-TL6748核心板管脚兼容,所以此三个核心板共用同一个底板。...

Tronlong创龙
16分钟前
2
0
百度嵌入式AI解决方案EdgeBoard之内存驱动设计介绍

1. 背景介绍 由于 FPGA 具备可编程和高性能计算的特点,基于FPGA硬件的AI计算加速,正广泛地应用到计算机视觉处理领域。其中极具代表性的部署方式之一就是使用FPGA和CPU组合构成异构计算系统...

AI君
22分钟前
3
0
开放应用模型(OAM):全球首个云原生应用标准定义与架构模型

Kubernetes 项目作为容器编排领域的事实标准, 成功推动了诸如阿里云 Kubernetes (ACK)等云原生服务的迅速增长。但同时我们也关注到,Kubernetes 的核心 API 资源比如 Service、Deploymen...

Mr_zebra
25分钟前
2
0
《Linux操作系统-Exynos4412》编译和安装Busybox

开发环境:Exynos4412-iTOP-4412开发板 现在 Busybox 的配置已经完成了,接下来开始编译 Busybox,在 Ubuntu 的终端输入 “make”命令开始编译 Busybox,如下图。 下图为编译过程中的截图。 ...

书白
28分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部