當前位置:ag真人国际官网-ag旗舰厅官方网站 » 編程語言 » 行列式計算c語言

行列式計算c語言-ag真人国际官网

發布時間: 2024-07-09 09:36:01

① 求行列式的值,用c語言怎麼寫啊

行列式的值的源代碼如下:

#include

#include

void main()

{

int i,j,m,n,s,t,k=1;

double a[n][n],f=1,c,x,sn;

for (i=0;i

for (j=0;j

scanf ("%lf",&a[i][j]);

for (i=0,j=0;i

{

if (a[i][j]==0)

{

for (m=i;a[m][j]==0;m );

if (m==n)

{

sn=0;

printf("deta=%lf ",sn);

exit(0);

}

else

for (n=j;n

{

c=a[i][n];

a[i][n]=a[m][n];

a[m][n]=c;

}

k*=(-1);

}

for (s=n-1;s>i;s--)

{

x=a[s][j];

for (t=j;t

a[s][t]-=a[i][t]*(x/a[i][j]);

}

for (i=0;i

f*=a[i][i];

sn=k*f;

printf ("deta=%lf ",sn);

}

(1)行列式計算c語言擴展閱讀

1、每個c語言程序中main函數是有且只有一個。

2、c語言程序寫完後,都是先編譯,後連接,最後運行。(.c-->.obj-->.exe)這個過程中注意.c和.obj文件時無法運行的,只有.exe文件才可以運行

② 如何用c語言來求一個四階行列式的值

#include
#include
#define max 9 /*定義最大為9階行列式*/

int fun(int n, int a[max][max] ); /*函數聲明*/
int main()
{
int n = 0; /*初始化階數n*/
int i = 0, j = 0; /*i,j分別表示行與列*/
int a[max][max] = {{0}}; /*定義行列式*/

scanf("%d",&n); /*讀入階數*/
while( n != 0) /*輸入為0時退出程序*/
{
for( i = 0; i < n; i ) /*此處2次循環將行列式存入數組中*/
{
for( j = 0; j < n; j )
scanf("%d", &a[i][j]);
}
printf("%d\n", fun( n, a ) );
scanf("%d", &n);
}

return 0;
}

/*以下為計算行列式值的遞歸函數*/
int fun( int n, int a[max][max] )
{
int b[max][max] = {{0}}; /*定義數組b並初始化*/
int i = 0, j = 0, sum = 0; /*i,j為行與列,sum為行列式的值*/
int x = 0,c = 0,p=0; /*用x判斷加與減,c,p為中間變數*/

if(n == 1)
return a[0][0];

for(i = 0;i < n; i ) /*此處大循環實現將餘子式存入數組b中*/
{
for(c = 0;c < n-1; c )
{
for(j = 0;j < n-1;j )
{
if (c < i){ /*藉助c判斷每行的移動方法*/
p = 0; /*當p=0時,行列式只向左移,即消去對應的第一列的數*/
}
else{ /*否則行列式左移後再上移*/
p = 1;
}
b[c][j] = a[c p][j 1];
}
}

if(i % 2 == 0){ /*i j(此時j=0,故只考慮i)為偶數,加法預算*/
x = 1;
}
else{ /*i j為奇數,減法運算*/
x = (-1);
}
sum = a[i][0] * fun(n - 1, b ) * x; /*計算行列式的值*/
}

return sum; /*將值返回*/
}

③ 用c語言 編寫計算n階行列式值得程序

#define n 4
#include
#include
void main()
{
int i,j,m,n,s,t,k=1;
double a[n][n],f=1,c,x,sn;
for (i=0;ifor (j=0;jscanf ("%lf",&a[i][j]);
for (i=0,j=0;i{
if (a[i][j]==0)
{
for (m=i;a[m][j]==0;m );
if (m==n)
{
sn=0;
printf("deta=%lf\n",sn);
exit(0);
}
else
for (n=j;n{
c=a[i][n];
a[i][n]=a[m][n];
a[m][n]=c;
}
k*=(-1);
}
for (s=n-1;s>i;s--)
{
x=a[s][j];
for (t=j;ta[s][t]-=a[i][t]*(x/a[i][j]);
}
}
for (i=0;if*=a[i][i];
sn=k*f;
printf ("deta=%lf\n",sn);
}

④ 用c語言寫行列式運算程序

#include
#include
void fun3(float *,int);
float fun4(float *,int);
void main()
{
int i,j,n;
float *a,answer;
for(i=0;i<3;i )
printf("<----------------------------------------------------------------------------->\n");
printf(" 歡迎進入*雒森*行列式計算程序,請准確輸入以便我為您正確計算! \n");
for(i=0;i<3;i )
printf("<----------------------------------------------------------------------------->\n");
do
{
printf("請輸入您要計算的行列式的行數或列數n(n>1):");
scanf("%d",&n);
}while(n<2);
a=(float *)malloc(n*n*sizeof(float));
for(i=0;i {
printf("請輸入您要計算的行列式的:\n");
for(j=0;j {
printf("第%d行%d列:",i 1,j 1);
scanf("%f",&a[i*n j]);
}
}
fun3(a,n);
answer=fun4(a,n);
printf("您要計算的行列式的值為:%.3f\n\n\n",answer);
for(i=0;i<3;i )
printf("<----------------------------------------------------------------------------->\n");
printf(" 歡迎進入*雒森*行列式計算程序,請准確輸入以便我為您正確計算! \n");
for(i=0;i<3;i )
printf("<----------------------------------------------------------------------------->\n");
}
void fun3(float a[],int n)
{
int i,j,d,f;
float m=1,w;
for(j=0;j {
for(i=0;i {
if(a[j*n j]==0)
{
for(d=j 1;d {
if(a[d*n j]!=0)
break;
}
for(f=j;f a[j*n f] =a[d*n f]*m;
}
if(i!=j)
{
w=-(a[i*n j]/a[j*n j]);
for(f=j;f a[i*n f] =a[j*n f]*w;
}
}
}
}
float fun4(float a[],int n)
{
int i;
float answer=1;
for(i=0;i answer*=a[i*n i];
return answer;
}

⑤ 用c語言編程 求n階行列式

#include
void main()
{
int n,a,b,y[10],x[10],i,j,temp;
float m[10][10],k=1;
printf("input \"n\"");
scanf("%d",&n);
printf("input the matrix:\n");
for(b=1;b<=n;b )
{
printf("next row:\n");
for(a=1;a<=n;a )scanf("%f",&m[a][b]);
}
for(b=1;b<=n;b )
{
for(a=1;a<=n;a )printf("f",m[a][b]);
printf("\n");
}
printf("\n");
for(i=1;i<=n;i ){x[i]=1;y[i]=i;}
for(j=1;j<=n;j )while(m[x[j]][j]==0)x[j] ;
for(b=n;b>=1;b--)
for(a=1;a<=b-1;a )
if(x[a]>x[a 1])
{
temp=x[a];x[a]=x[a 1];x[a 1]=temp;
temp=y[a];y[a]=y[a 1];y[a 1]=temp;
k*=-1;
}
for(b=1;b<=n;b )
{
for(a=1;a<=n;a )printf("f",m[a][y[b]]);
printf("\n");
}
printf("\n");
for(a=1;a<=n;a )
for(b=a 1;b<=n;b )
if(m[a][y[b]]!=0)
for(i=a 1;i<=n;i )
m[i][y[b]]-=m[a][y[b]]*m[i][y[b-1]]/m[a][y[b-1]];
for(b=1;b<=n;b )
{
for(a=1;a<=n;a )printf("f",m[a][y[b]]);
printf("\n");
}
for(i=1;i<=n;i )k*=m[i][y[i]];
printf("the matrix is %f \n",k);
scanf("%d",i);
}
我在剛學c那會寫的一個程序,演算法不是很優秀,而且有漏洞,希望能給你提供大體思路。
我也幫你找了個別人寫的程序,你也去看看吧。也是網路上的。

熱點內容
仙境傳說手游腳本 發布:2024-07-17 16:09:24 瀏覽:690
matlab命令窗口和新建腳本 發布:2024-07-17 15:51:26 瀏覽:374
建ftp文件夾 發布:2024-07-17 15:51:26 瀏覽:954
魔獸撿物腳本 發布:2024-07-17 15:27:56 瀏覽:129
開發ip伺服器 發布:2024-07-17 15:24:42 瀏覽:387
安卓系統視頻製作哪個好用 發布:2024-07-17 15:10:47 瀏覽:210
androidapk結構 發布:2024-07-17 15:10:43 瀏覽:945
c語言指針的例子 發布:2024-07-17 15:08:01 瀏覽:768
linuxzcat 發布:2024-07-17 15:02:09 瀏覽:901
賓士編程嗎 發布:2024-07-17 14:57:08 瀏覽:853
网站地图