C 语言矩阵计算器

2024年8月28日 | 阅读 11 分钟

基于矩阵的问题解决需要大量的计算工作,如果出现哪怕一个错误,用户也无法获得期望的答案。对于每一行和每一列,您必须输入所需的组成部分。仅仅输入每个单独索引的数据不足以解决问题。要获得输出并执行必要的处理步骤以达到所需结果,需要付出很多努力。通过从其他索引中删除值,您可以获得中心值。

执行乘法时,第二个矩阵的每个成员都必须乘以所有其他元素。第一个矩阵的每个行元素都乘以第二个矩阵的每个列成员,作为处理活动的一部分。

手动解决这个问题需要一些时间,所需时间也取决于矩阵的类型。如果矩阵大小为2x2,问题很容易在五分钟内解决,但如果索引大小大于3或矩阵索引不同,则更具挑战性。因此,为了节省时间,您可以使用此方法通过仅提供有关矩阵类型及其组成部分的一些参数来匹配您的解决方案。

当前情况

尽管当前系统也提供计算机导向的方法来获得矩阵乘法的结果,但当前方法不能用于不同大小的矩阵。该系统只能用于索引大小为二维的矩阵,不能用于索引大小不同的矩阵。此外,您将能够计算两个2x2矩阵的乘法。但是,您无法同时验证您的结果,因为大于2的矩阵不能用于生成结果。为了允许用户仔细检查他们提交的数据,当前系统也无法在显示最终结果时显示输入的元素。

本项目将解决的问题

现有的矩阵乘法技术可以生成任何所需的矩阵大小。在输入给定矩阵的元素值之前,用户还可以选择矩阵大小。在输入两个矩阵的矩阵大小后,您只需输入每个矩阵的元素。通过这种技术,您无需付出任何额外努力,因为屏幕反面列出的登录信息将处理剩余的任务。它将能够显示最终结果和每个矩阵的详细信息。

程序分解

在我们的程序中,我们声明了用户定义函数,例如读取矩阵的readMatrix函数,打印矩阵的printMatrix函数,矩阵加减的matrixAddSub函数,以及乘法的matrixScalarMultipy函数。

在我们的程序主函数中,用户可以选择不同的操作,如加法、减法、标量乘法和两个矩阵相乘。

如果用户选择了任何选项,系统将要求在所有情况下添加两个矩阵的元素。

上述readMatrix函数将读取用户输入的矩阵元素。

上述函数将打印用户输入的矩阵。

如果用户选择了加法选项,则上述函数将生效并添加两个矩阵的元素。

如果用户选择了标量乘法选项,则上述函数将生效。

如果用户选择了乘法选项,则上述函数将生效并乘以两个矩阵的元素并打印结果。

C++矩阵计算器程序

输出

Operation Menu
        1. to Add
        2. to Subtract
        3. to Scalar Multiply        
        4. to Multiply two matrices
Enter your choice: 1

Enter the #rows and #cols for matrix A: 2 2
Enter the #rows and #cols for matrix B: 2 2

        Enter elements of Matrix A a 2 x 2 matrix.
        2 entries for row 1: 1 2
        2 entries for row 2: 3 4
   Matrix A

        1       2
        3       4

        Enter elements of Matrix B a 2 x 2 matrix.
        2 entries for row 1: 5 6
        2 entries for row 2: 7 8
  Matrix B

        5       6
        7       8

The Sum of matrixA + matrixB is :
        6       8
        10      12
Do you want to calculate again? Y/N
Y
Enter your choice: 2

Enter the #rows and #cols for matrix A: 2 2
Enter the #rows and #cols for matrix B: 2 2

        Enter elements of Matrix A a 2 x 2 matrix.
        2 entries for row 1: 1 2
        2 entries for row 2: 3 4

                Matrix A

        1       2
        3       4

        Enter elements of Matrix B a 2 x 2 matrix.
        2 entries for row 1: 5 6
        2 entries for row 2: 7 8

                Matrix B

        5       6
        7       8

The difference between matrixA - matrixB is :
        -4      -4
        -4      -4
Do you want to calculate again? Y/N
Y
Enter your choice: 3

Enter the scalar: 2

The scalar is: 2
Enter the #rows and #cols for matrix A: 2 2

        Enter elements of Matrix A a 2 x 2 matrix.
        2 entries for row 1: 1 2
        2 entries for row 2: 3 4

                Matrix A

        1       2
        3       4

The scalar multiplication between matrixA * 2 is:
2       4
6       8
Enter your choice: 4

Enter the #rows and #cols for matrix A: 2 2
Enter the #rows and #cols for matrix B: 1 2

Error! column of first matrix not equal to row of second.
Enter the #rows and #cols for matrix A: 1 2
Enter the #rows and #cols for matrix B: 3 4
Error! column of first matrix not equal to row of second.