c语言实现二阶行列式计算,c语言编写二阶逆矩阵给定的二阶矩阵(2*2),求其逆矩阵;输出一个大小为2*2的距阵,矩阵每一行相邻的的两个数字之间由一个空格隔开.输入:2 01 1输出:0.500000 ...

这个程序实现了一个2x2矩阵的输入、打印和逆矩阵计算。用户可以输入一个2x2的矩阵,然后程序会显示输入的矩阵,并在条件允许的情况下计算其逆矩阵并输出。逆矩阵计算通过行列式判断是否可逆,并使用高斯消元法进行求解。
摘要由CSDN通过智能技术生成

7d14a2b81882cfe4494b096a84150b2a.png 优质解答

#include

int ScanDMatrix(double matrix[][2]);

void PrintDMatrix(double matrix[][2]);

int InverseDMatrix(double matrix[][2]);

int main(void)

{

double matrix[2][2];

printf("Input the matrix this way\n");

printf("A B\nC D\n:\n");

if (! ScanDMatrix(matrix))

{

printf("Are you kidding me?\n");

return 0;

}

printf("The matrix you input is:\n");

PrintDMatrix(matrix);

if (InverseDMatrix(matrix))

{

printf("The inverse of the matrix is:\n");

PrintDMatrix(matrix);

printf("\n");

}

else

{

printf("Oh, what a pitty, it does not have an inverse one.\n");

}

return 0;

}

int ScanDMatrix(double matrix[][2])

{

return scanf("%lf%lf", &matrix[0][0], &matrix[0][1]) == 2

&& scanf("%lf%lf", &matrix[1][0], &matrix[1][1]) == 2;

}

void PrintDMatrix(double matrix[][2])

{

printf("%10g\t%10g\n", matrix[0][0], matrix[0][1]);

printf("%10g\t%10g\n", matrix[1][0], matrix[1][1]);

}

int InverseDMatrix(double matrix[][2])

{

double dDiv, dTmp;

dDiv = matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0];

if (! dDiv)

return 0;

dTmp = matrix[0][0];

matrix[0][0] = matrix[1][1] / dDiv;

matrix[1][1] = dTmp / dDiv;

matrix[0][1] = -matrix[0][1] / dDiv;

matrix[1][0] = -matrix[1][0] / dDiv;

return 1;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值