求线性方程组的解

今天写了一个求线性方程组解的程序。

从文件中输入矩阵,输出一个进行过变换的矩阵,输入文件为transform.txt 与该文件夹同一个目录,输出至屏幕上。

 

比如,文本文件中的矩阵为

1 2 3 4
0 5 6 7
2 7 6 8

则输出为

2 0 0 1
0 1 0 0
0 0 6 7

即2x=1,y=0,6z=7

 

矩阵为

1 2 3 4
0 5 6 7
2 7 6 8
3 9 3 7

输出为

2 0 0 1
0 1 0 0
0 0 6 7
0 0 0 1(表示无解)

 

用得前几天那个从文件中读取矩阵,以及最大公倍数公约数的函数。

 

程序不足之处是,从文件读取的时候,必须要在程序中指定矩阵大小。ROWS LINES必须进行宏定义,因为C语言不支持以a[][]为函数参数。

 

附代码:

#include #include #include #define MAXLENGTH 64 #define MAXITEM 32 #define LINES 4 #define ROWS 4 int readFromLine(char * line, int *lines, int maxrow); //显示已知大小矩阵 void showFixMatrix(int a[][ROWS]); /*以下函数暂时不列代码*/ int readFixMatrixFromFile(int matrix[][ROWS], unsigned int lines, unsigned int rows, char *src); int getMaxDivisor(int large, int little); int getMinMultiple(int large, int little); int getGroupMaxDivisor(int array[], int number); int simpleLine(int line[LINES], int maxRows); { int i = 0, divisor = 0; divisor = getGroupMaxDivisor(line, maxRows); if (divisor == 1 || divisor == 0) return divisor; for (i = 0; i

你可能感兴趣的:(C,C++)