c语言编写二阶逆矩阵
#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
"); printf("A B
C D
:
"); if (! ScanDMatrix(matrix)) { printf("Are y...全部
#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
"); printf("A B
C D
:
"); if (! ScanDMatrix(matrix)) { printf("Are you kidding me?
"); return 0; } printf("The matrix you input is:
"); PrintDMatrix(matrix); if (InverseDMatrix(matrix)) { printf("The inverse of the matrix is:
"); PrintDMatrix(matrix); printf("
"); } else { printf("Oh, what a pitty, it does not have an inverse one。
"); } 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("g g
", matrix[0][0], matrix[0][1]); printf("g g
", 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; }。
收起