/*按规则输入线性方程组的系数(每行N+1个数值,按顺序输入N个系数项,最后一项为常数项,用空格隔开)
,输出该方程组的系数行列式和它的值,最后输出方程组的解*/
/*处理整型数据*/
#include
#include
#define N 4 //行列式的行(列)数
typedef struct node
{
int data; //存储元素的值
int x; //存储元素的横坐标
int y; //存储元素的纵坐标
} array;
int sum; //全局变量,存储行列式的值
void Create(int H[][N], int X[]); //构造一个线性方程组
void PrintH(const int H[][N], const int X[]); //输出行列式
void Solve(const int H[][N], array S[], int i, int NiXu); //采用递归方式求行列式的值
bool Judge(const array S[], int line, int len); //判断行列式的元素的纵坐标是否重复
int main(void)
{
array SL[N]; //栈,存储行列式的每一个乘积项的元素(因子)
int H[N][N], CH[N][N]; //存储系数行列式
int B[N]; //存储常数项
int D; //存储系数行列式的值
float X[N];//存储方程组的解
int i, j, k;
Create(H,B); //构造一个行列式
PrintH(H,B); //输出行列式
sum = 0;
Solve(H, SL, 0, 0); //采用递归方式求行列式的值
D = sum;
printf("D = %d/n", D); //输出系数行列式的值
for(k=0; k
{
for(i=0; i
{
for(j=0; j
CH[i][j] = H[i][j];
CH[i][k] = B[i]; //把系数行列式D中第k列的元素用方程组右端的常数项代替
}
sum = 0;
Solve(CH, SL, 0, 0); //采用递归方式求行列式的值
printf("D%