C语言计算三阶行列式

2023-12-30 00:00:14

1-13题

C语言基础例题1-3题-指针篇
C语言基础例题4-5题-二维数组篇
C语言基础例题6-7题-结构体篇
C语言基础例题8-9题-大作业篇
C语言基础例题10-11题-字符串、指针篇
C语言基础例题12题-链表
C语言基础例题13题-字符串逆序

例题14

编写一个C语言程序,计算一个3x3矩阵的行列式值。
给定一个3x3的矩阵A(其中a1,b1…等等均为数):

double A[3][3] = {
    {a1, a2, a3},
    {b1, b2, b3},
    {c1, c2, c3}
};

请根据行列式的定义,编写函数calculateDeterminant,用于计算该矩阵的行列式值。函数原型如下:

double calculateDeterminant(double matrix[3][3]);

测试用例

#include <stdio.h>

double calculateDeterminant(double matrix[3][3]) {
    // 在此处实现计算3x3矩阵行列式的代码
}

int main() {
    double A[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    double det = calculateDeterminant(A);
    
    printf("The determinant of the matrix is: %.2f\n", det);

    return 0;
}

预期输出:
The determinant of the matrix is: 0.00

参考答案1

#include <stdio.h>

double calculateDeterminant(double matrix[3][3]) {
    return matrix[0][0]*matrix[1][1]*matrix[2][2]+
        matrix[1][0]*matrix[2][1]*matrix[0][2]+
        matrix[2][0]*matrix[0][1]*matrix[1][2]-
        matrix[0][2]*matrix[1][1]*matrix[2][0]-
        matrix[0][1]*matrix[1][0]*matrix[2][2]-
        matrix[0][0]*matrix[2][1]*matrix[1][2];
}

int main() {
    double A[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    double det = calculateDeterminant(A);
    
    printf("The determinant of the matrix is: %.2f\n", det);

    return 0;
}

calculateDeterminant 函数接收一个 3x3 双精度浮点型数组(即一个二维数组)作为参数。这个数组表示一个 3x3 矩阵。

函数内部计算 3x3 矩阵的行列式。根据行列式的定义求出结果。

参考答案2

#include <stdio.h>

double calculateDeterminant(double matrix[3][3])
{
    double det = 0.0;
    det = matrix[0][0] * (matrix[1][1] * matrix[2][2] - matrix[1][2] * matrix[2][1]) - matrix[0][1] * (matrix[1][0] * matrix[2][2] - matrix[1][2] * matrix[2][0]) + matrix[0][2] * (matrix[1][0] * matrix[2][1] - matrix[1][1] * matrix[2][0]);

    return det;
}

int main()
{
    double A[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    double det = calculateDeterminant(A);

    printf("The determinant of the matrix is: %.2f\n", det);

    return 0;
}

变量det用于存储计算得到的行列式的值。

文章来源:https://blog.csdn.net/weixin_44499065/article/details/135299364
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。