c语言:矩阵相乘-矩阵相加 新手练习1

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

#include<string.h>

void main()

{

    int a[4][4];

    int b[4][4];

    int c[4][4];

    int i,j,k,s,t,m,n;

    srand(time(0));

    for(i=0;i<=3;i++)

        for(j=0;j<=3;j++)

            a[i][j]=rand()%20+1;

                printf("a is \n");

                for(i=0;i<=3;i++)

                {

                

                    for(j=0;j<=3;j++)

                        

                        

                            printf("%5d",a[i][j]);

                                printf("\n");

                                    printf("\n");

            }

                        

                            for(i=0;i<=3;i++)

                            for(j=0;j<=3;j++)

                                b[i][j]=rand()%20+1;

                                printf("b is \n");

                                            for(i=0;i<=3;i++)

                                            {

                                            

                                            for(j=0;j<=3;j++)

                                            

                                                

                                                printf("%5d",b[i][j]);

                                                    printf("\n");

                                                        printf("\n");

                                            }

                                                for(i=0;i<=3;i++)

                                                    for(j=0;j<=3;j++)

                                                        c[i][j]=a[i][j]+b[i][j];

                                                            printf("c is \n");

                                                            

                                                                for(i=0;i<=3;i++)

                                            {

                                            

                                            for(j=0;j<=3;j++)

                                            

                                                

                                                printf("%5d",c[i][j]);

                                                    printf("\n");

                                                        printf("\n");

                                            }

                                            int z;

                                            z=0;

                                    printf("a is \n");

                                        for(i=0;i<=3;i++)

                {

                

                    for(j=0;j<=3;j++)

                        

                        

                            printf("%5d",a[i][j]);

                                printf("\n");

                                    printf("\n");

            }

 

                            int my=0;

                            int sb=0;

                            k=0;

                            int jsq=0;

                                                            printf("my is : \n");

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

                                    {

                                        for(i=0;i<=3;i++)

                                    {

                                    

                                    for(j=0;j<=3;j++)

                                    {

                                

                                    sb=a[k][j]*b[j][i];

                                    my=my+sb;

                                    

                                    }

                                    c[k][i]=my;

        

                                    printf("%5d",c[k][i]);

                                    jsq++;

                                    if(jsq%4==0)

                                    printf("\n");

                                    my=0;

                                }

                            }                                                   

                             }

原文地址:https://www.cnblogs.com/jx3ajmd/p/9610398.html

时间: 2024-10-08 23:44:22

c语言:矩阵相乘-矩阵相加 新手练习1的相关文章

R语言学习中的小bug:R中矩阵相乘错误于A %*% B: 需要数值/复数矩阵/矢量参数

遇到了小bug: R中矩阵相乘错误于A %*% B: 需要数值/复数矩阵/矢量参数 看到网上别人的做法,发现了用class(A)和class(B)之后才发现,是因为读入的时候数据的类型不对,A.B的类型并不是matrix,才导致了这个问题. 用as.matrix来变型一下,就OK了. R语言学习中的小bug:R中矩阵相乘错误于A %*% B: 需要数值/复数矩阵/矢量参数,布布扣,bubuko.com

矩阵相乘(C语言实现)

---恢复内容开始--- 矩阵相乘程序的简单C语言实现: 这是矩阵相乘的公式: 源代码: 1 #include<stdio.h> 2 #include<stdlib.h> 3 #define M 100 4 5 int main(void) 6 { 7 int i,j,k,matrix1[M][M],matrix2[M][M],row1,col1,row2,col2,matrix[M][M]; 8 /*为需要相乘的两个矩阵赋值:*/ 9 printf("输入第一个矩阵的行

C语言 &#183; 矩阵相乘 &#183; 算法提高

算法提高 矩阵相乘 时间限制:1.0s   内存限制:256.0MB 问题描述 小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊),可惜他的老师正在讲这矩阵乘法这一段内容. 当然,小明上课打瞌睡也没问题,但线性代数的习题可是很可怕的. 小明希望你来帮他完成这个任务. 现在给你一个ai行aj列的矩阵和一个bi行bj列的矩阵, 要你求出他们相乘的积(当然也是矩阵). (输入数据保证aj=bi,不需要判断) 输入格式 输入文件共有ai+bi+2行,并且输入的所有数为整数(long long范围

算法笔记_003:矩阵相乘问题【分治法】

目录 1 问题描述  1.1实验题目 1.2实验目的 1.3实验要求 2 解决方案 2.1 分治法原理简述 2.2 分治法求解矩阵相乘原理 2.3 具体实现源码 2.4 运算结果截图 1 问题描述 1.1实验题目 设M1和M2是两个n×n的矩阵,设计算法计算M1×M2 的乘积. 1.2实验目的 (1)提高应用蛮力法设计算法的技能: (2)深刻理解并掌握分治法的设计思想: (3)理解这样一个观点:用蛮力法设计的算法,一般来说,经过适度的努力后,都可以对其进行改进,以提高算法的效率. 1.3实验要求

C语言实现的矩阵乘法运算器

需求 编写程序模拟矩阵乘法,一个m*n的矩阵,乘以一个 n*m 的矩阵, 并且输出结果. STEP 1  矩阵乘法的计算 一个m行n列的矩阵与一个n行p列的矩阵可以相乘,得到的结果是一个m行p列的矩阵. 其中乘积矩阵的第i行第j列位置上的数,为第一个矩阵第i行上的n个数与第二个矩阵第j列上的n个数对应相乘后所得的n个乘积之和. STEP 2  编程思路 (1)需申请动态二维数组存储两个参与运算的矩阵以及一个结果矩阵: (2)手动输入两个参与运算的矩阵: (3)调用函数实习矩阵乘法的计算 并输出结

【CUDA并行编程之四】矩阵相乘

前面介绍了基本的Cuda编程的相关知识,那么这一篇在此基础之上来看看GPU在处理数据计算上的高效能,我们拿矩阵相乘来作为例子. 1.CPU上执行矩阵相乘以及性能. 在CPU上进行矩阵相乘运算的代码: mat_mul.cc: <span style="font-family:Microsoft YaHei;font-size:18px;">//a[i]*b[i] + c[i] = d[i] #include<iostream> #include<vector

矩阵相乘

有一个x*y的矩阵和一个y*z矩阵相乘,元素均为整数,求两个矩阵相乘得到的矩阵.这是一道华为OJ题,具体描述忘记了,大致内容如此.并且要求实现的函数参数为指针. 例如矩阵1为 int m1[1][3]={2,-6,3}; 矩阵2为 int m2[3][1]={4,-2,-4}; 乘积矩阵初始化为 int r[1][1]=0; 要求实现的函数为 void matrix_multiple(int *m1,int *m2,int *r,int x,int y,int z) 代码如下: void mat

稀疏矩阵的三元组顺序表存储及矩阵相乘算法小结

稀疏矩阵的三元组顺序表存储及矩阵相乘算法小结 巧若拙(欢迎转载,但请注明出处:http://blog.csdn.net/qiaoruozhuo) 一:稀疏矩阵的三元组顺序表数据结构 typedef int ElemType; typedef struct { intx, y;  //该非零元素的行下标和列下标 ElemTypee; //该非零元素的值 } Triple; typedef struct { Tripledata[MAXSIZE]; //非零元素三元组顺序表 intmu, nu, t

ObjC语法练习 冒泡排序、选择排序、矩阵相乘

用OC实现的冒泡排序.选择排序.矩阵相乘,纯粹是用来练习语法. 冒泡排序,程序如下: void bubbleSort() { //初始化数组 NSMutableArray *array1 = [[NSMutableArray alloc] initWithCapacity:8]; [array1 addObject:@"5"]; [array1 addObject:@"10"]; [array1 addObject:@"8"]; [array1