用C語言程式設計遞迴求行列式的值

2021-04-13 09:31:09 字數 1505 閱讀 2502

#include

"stdio.h"

#include

"mem.h"

#define isdebug 0

/*int iroworcol;*/

void readmatrix(

int *ipmatrixread, 

int iroworcol4read)}}

void writematrix(

int *ipmatrixwrite, 

int p_iroworcol)

printf(

"%c/n", '┐');

for (irow4write = 0; irow4write < p_iroworcol; irow4write ++)

printf(

"%c/n", '│');

}putch('└');

for (irow4write = 0; irow4write < (p_iroworcol + 1) * 3 -1; irow4write ++)

printf(

"%c/n", '┘');

#if isdebug == 1

getch();

#endif

}int computmatrix(

int *ipmatrixcomput, 

int icolcomput)

else

irowtmp ++;}}

#if isdebug == 1

for (irow4comput = 0; irow4comput < icolcomput - 1; irow4comput ++)

}printf(

"]/n************/n");

writematrix(ipnewmatrix, icolcomput - 1);

#endif

iresult += *(ipmatrixcomput + currentrow * icolcomput) * computmatrix(ipnewmatrix, icolcomput - 1) * ((currentrow + 1) % 2 ? 1 : -1);

#if isdebug == 1

printf(

"result=%d/n", iresult);

getch();

#endif

free(ipnewmatrix);}}

}}return (iresult);

}void main(

void)

else

}printf(

"/n/n= %d/n", computmatrix(ipmatrix, iroworcol));

free(ipmatrix);

}else

}else

printf(

"/ncompute another matrix(y/n)?");

chsure = getche();

if (toupper(chsure) != 'y')}}

求行列式的值

肯定要用遞迴,肯定要用陣列 用乙個二維陣列來表示這個矩陣,但是引數傳遞的時候我們不能確定這個矩陣的行數列數,所以編譯器會報錯 所以定義乙個一維陣列來模擬這個行列式,而一維陣列作為引數傳遞給函式時又不用指定大小,符合我們的需要。同時我們定義乙個結構體來表示這個余子式 typedef struct yu...

程式設計 C 對角變換求行列式值

最近複習行列式知識的時候,發現如何求解數字行列式的值比較重要,寫了乙個通過基本行變換把行列式變換為上三角行列式,然後利用對角線求值 using system using system.collections.generic using system.linq using system.text us...

演算法 求行列式 C語言實現

興趣來了,編寫乙個求行列式的程式,關鍵要解決兩個問題 1 行列式列序號的全排列 2 行列式的符號 include include using namespace std define len 3 define count 3 2 1 the count of premutation for leng...