#include stdio.h
十年的五臺(tái)網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷型網(wǎng)站的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整五臺(tái)建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“五臺(tái)網(wǎng)站設(shè)計(jì)”,“五臺(tái)網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
#include stdlib.h
void fun3(float *,int);
float fun4(float *,int);
void main()
{
int i,j,n;
float *a,answer;
for(i=0;i3;i++)
printf("-----------------------------------------------------------------------------\n");
printf(" 歡迎進(jìn)入*雒森*行列式計(jì)算程序,請(qǐng)準(zhǔn)確輸入以便我為您正確計(jì)算! \n");
for(i=0;i3;i++)
printf("-----------------------------------------------------------------------------\n");
do
{
printf("請(qǐng)輸入您要計(jì)算的行列式的行數(shù)或列數(shù)n(n1):");
scanf("%d",n);
}while(n2);
a=(float *)malloc(n*n*sizeof(float));
for(i=0;in;i++)
{
printf("請(qǐng)輸入您要計(jì)算的行列式的:\n");
for(j=0;jn;j++)
{
printf("第%d行%d列:",i+1,j+1);
scanf("%f",a[i*n+j]);
}
}
fun3(a,n);
answer=fun4(a,n);
printf("您要計(jì)算的行列式的值為:%.3f\n\n\n",answer);
for(i=0;i3;i++)
printf("-----------------------------------------------------------------------------\n");
printf(" 歡迎進(jìn)入*雒森*行列式計(jì)算程序,請(qǐng)準(zhǔn)確輸入以便我為您正確計(jì)算! \n");
for(i=0;i3;i++)
printf("-----------------------------------------------------------------------------\n");
}
void fun3(float a[],int n)
{
int i,j,d,f;
float m=1,w;
for(j=0;jn;j++)
{
for(i=0;in;i++)
{
if(a[j*n+j]==0)
{
for(d=j+1;dn;d++)
{
if(a[d*n+j]!=0)
break;
}
for(f=j;fn;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;fn;f++)
a[i*n+f]+=a[j*n+f]*w;
}
}
}
}
float fun4(float a[],int n)
{
int i;
float answer=1;
for(i=0;in;i++)
answer*=a[i*n+i];
return answer;
}
行列式的值的源代碼如下:
#include stdio.h
#include stdlib.h
void main()
{
int i,j,m,n,s,t,k=1;
double a[n][n],f=1,c,x,sn;
for (i=0;in;i++)
for (j=0;jn;j++)
scanf ("%lf",a[i][j]);
for (i=0,j=0;injn;i++,j++)
{
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;nn;n++)
{
c=a[i][n];
a[i][n]=a[m][n];
a[m][n]=c;
}
k*=(-1);
}
for (s=n-1;si;s--)
{
x=a[s][j];
for (t=j;tn;t++)
a[s][t]-=a[i][t]*(x/a[i][j]);
}
for (i=0;in;i++)
f*=a[i][i];
sn=k*f;
printf ("deta=%lf\n",sn);
}
擴(kuò)展資料
1、每個(gè)C語(yǔ)言程序中main函數(shù)是有且只有一個(gè)。
2、C語(yǔ)言程序?qū)懲旰?,都是先編譯,后連接,最后運(yùn)行。(.c--.obj--.exe)這個(gè)過(guò)程中注意.c和.obj文件時(shí)無(wú)法運(yùn)行的,只有.exe文件才可以運(yùn)行
用遞歸寫了一個(gè)求n階行列式的算法。用4階行列式舉例:
1?2?3?4
5?6?7?8
4?3?2?1
8?7?6?5
為了方便計(jì)算,我沒有用二維數(shù)組。
把矩陣用一維數(shù)組A存起來(lái),并指出維數(shù)n。
第i行第j列的元素的下標(biāo)是i*n+j
#include?stdio.h
#include?stdlib.h
//求余子式M的函數(shù),參數(shù)是矩陣,維數(shù),i行,j列
//比如M(A,?4,?0,?0)表示去掉第1列,第1列的元素后剩下的數(shù)組成一個(gè)數(shù)組
//6?7?8
//3?2?1
//7?6?5
//然后用A[i*n+j]和余子式的值相乘
int*?M(int?*A,?int?n,?int?i,?int?j)
{
int?*B=?(int*)malloc((n?-?1)*sizeof(int));
int?k?=?0;
for?(int?k1?=?0;?k1??n;?++k1)
{
if?(k1?!=?i)
for?(int?k2?=?0;?k2??n;?++k2)
if?(k2?!=?j)
B[k++]?=?A[k1*n?+?k2];
}
return?B;
}
int?det(int?A[],?int?n)
{
int?sum?=?0,?N?=?n*n;
if?(n?==?1)
sum?=?A[0];
else
{
for?(int?i?=?0;?i??n;?++i)
{
int?*tmp?=?M(A,?n,?i,?0);
int?Aij?=?A[i*n]*det(tmp,?n?-?1);
if?(i%2?!=?0)
Aij?=?-Aij;
sum?=?sum?+?Aij;
}
}
return?sum;
}
int?main()
{
int?A[]={2,1,3,-1,1,-5,1,1,2,3,2,2,0,-1,4,2};
printf("%d\n",?det(A,?4));
return?0;
}