C程序 将两个矩阵相加

首先,写一个程序可以将两个矩阵相加,需要按照以下步骤进行:

  1. 定义两个矩阵,并初始化数据
  2. 定义一个结果矩阵
  3. 遍历两个矩阵,并将对应元素相加,然后存放到结果矩阵中
  4. 输出结果矩阵

下面是一个标准的C程序代码示例:

#include <stdio.h>
#define ROW 2
#define COL 2
void matrix_add(int matrix1[][COL], int matrix2[][COL], int result[][COL]);

int main()
{
    int matrix1[ROW][COL] = {{1, 2},
                             {3, 4}};

    int matrix2[ROW][COL] = {{5, 6},
                             {7, 8}};

    int result[ROW][COL];

    matrix_add(matrix1, matrix2, result);

    for (int i = 0; i < ROW; i++)
    {
        for (int j = 0; j < COL; j++)
        {
            printf("%d ", result[i][j]);
        }
        printf("\n");
    }

    return 0;
}

void matrix_add(int matrix1[][COL], int matrix2[][COL], int result[][COL])
{
    for (int i = 0; i < ROW; i++)
    {
        for (int j = 0; j < COL; j++)
        {
            result[i][j] = matrix1[i][j] + matrix2[i][j];
        }
    }
}

该代码定义了一个2x2的矩阵,并将其与另外一个2x2的矩阵相加,并将结果存放在另一个矩阵中,最后输出结果矩阵。

下面再给出一个两个矩阵大小不一致的示例:

#include <stdio.h>
#define ROW1 2
#define COL1 3
#define ROW2 3
#define COL2 2
void matrix_add(int matrix1[][COL1], int matrix2[][COL2], int result[][COL2], int row1, int col1, int row2, int col2);

int main()
{
    int matrix1[ROW1][COL1] = {{1, 2, 3},
                               {4, 5, 6}};

    int matrix2[ROW2][COL2] = {{7, 8},
                               {9, 10},
                               {11, 12}};

    int result[ROW1][COL2];

    matrix_add(matrix1, matrix2, result, ROW1, COL1, ROW2, COL2);

    for (int i = 0; i < ROW1; i++)
    {
        for (int j = 0; j < COL2; j++)
        {
            printf("%d ", result[i][j]);
        }
        printf("\n");
    }

    return 0;
}

void matrix_add(int matrix1[][COL1], int matrix2[][COL2], int result[][COL2], int row1, int col1, int row2, int col2)
{
    if (row1 != row2 || col1 != col2)
    {
        printf("The size of matrices is not the same!");
        return;
    }

    for (int i = 0; i < row1; i++)
    {
        for (int j = 0; j < col2; j++)
        {
            result[i][j] = matrix1[i][j] + matrix2[i][j];
        }
    }
}

该代码定义了一个2x3的矩阵和一个3x2的矩阵,将它们相加得到一个2x2的结果矩阵,并输出。在函数中加入防御性编程,若两个矩阵的行列数不相等则输出错误信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C程序 将两个矩阵相加 - Python技术站

(0)
上一篇 2023年5月9日
下一篇 2023年5月9日

相关文章

  • 从C语言中读取Python 类文件对象

    要从C语言中读取Python类文件对象,需要使用Python提供的C API。下面是一些步骤: 导入必要的头文件 在使用Python的C API之前,需要包含必要的头文件,其中最重要的是Python.h。在C语言中,导入头文件通常使用#include指令。 #include <Python.h> 初始化Python解释器 在使用Python的C …

    C 2023年5月22日
    00
  • C/C++如何实现循环左移,循环右移

    C/C++可以通过位操作实现循环左移和循环右移。 循环左移的思路是把数的二进制位向左移动k位,并把超出第n位的二进制位移到最低n位,最高位填0。 公式为:(x<>(n-k)&(pow(2,k)-1)<<n-k) 示例: 假设x的二进制表示为11001100, k=3 则循环左移3位后,二进制结果为01100110。 编写C/C…

    C 2023年5月23日
    00
  • C/C++中for语句循环用法以及练习举例

    下面是对C/C++中for语句循环用法以及练习举例的详细讲解。 1. for循环语法 for循环是一种常用的循环结构,它的语法如下: for (初始化表达式; 循环条件; 更新表达式) { 循环体 } 其中,初始化表达式一般是用来初始化循环控制变量的,循环条件是一个判断式,根据该式的返回值判断是否进入循环,更新表达式则在每次迭代之后更新循环控制变量的值。循环…

    C 2023年5月22日
    00
  • 荣耀畅玩8C虚拟按键如何更改?荣耀畅玩8C虚拟按键设置教程

    荣耀畅玩8C虚拟按键更改教程 荣耀畅玩8C是一款性价比较高的手机,它配备了虚拟按键,但是有时候我们可能需要更改虚拟按键,以满足个人习惯或者特定需求。在下面的教程中,我将介绍如何更改荣耀畅玩8C的虚拟按键。 步骤一:进入设置界面 第一步首先要进入设置界面,打开手机屏幕,在桌面上找到“设置”图标,点击进入。 步骤二:进入系统导航栏 在设置界面内,依次找到“系统”…

    C 2023年5月23日
    00
  • 浅谈c++11闭包的实现

    浅谈C++11闭包的实现 什么是闭包 闭包是一种特殊的函数,它可以访问它的外部作用域中的变量,并且可以在离开作用域后仍然继续访问这些变量。在C++中,闭包通常会通过lambda函数来实现。 Lambda表达式简介 Lambda表达式是C++11引入的新特性,它是一种匿名函数,可以用于定义匿名临时函数对象。Lambda表达式通常有以下形式: [capture …

    C 2023年5月22日
    00
  • C和C++的区别

    C和C++的区别 C和C++是两种非常流行的编程语言,它们之间有很多相似之处,但也有一些根本的区别。 C和C++的主要区别 C语言和C++语言的主要区别在于面向对象编程的支持和语言的复杂程度上。 面向对象编程 C++是一种支持面向对象编程(OOP)的编程语言,它允许使用类、继承、多态等OOP的概念。 而C语言没有直接的OOP支持。 语言的复杂度 C++比C语…

    C 2023年5月10日
    00
  • Json解析的方法小结

    以下是“Json解析的方法小结”的完整攻略: 什么是Json? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。在数据交换时,Json更加方便快捷。 Json解析的方法 Json解析的方法有4种,分别是: 1. 基于JSON…

    C 2023年5月23日
    00
  • C++详解如何实现动态数组

    C++中实现动态数组有多种方式,常见的包括使用指针和STL容器。下面简要介绍一下这两种实现方式。 使用指针实现动态数组 申请动态数组空间 在C++中,我们可以使用new关键字来动态申请内存空间,然后使用指针来存储这个内存地址。例如,我们可以使用以下代码申请一个长度为10的整型动态数组: int* arr = new int[10]; 访问动态数组元素 当我们…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部