学数学也要学点偷懒的技术(二)
给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的学数学也要学点偷懒的技术(二),过去的都会过去,迎接崭新的开始,释放更美好的自己。
#include stdio.h
#include math.h
#include conio.h
#include stdlib.h#define N 10
#define M 10
#define S 10void njie_valu();
void njief_value();
float Dvalue(float a[N][N],int n);
void juzhench();
void nijuzhen();void nijuzhen()
{
int i,j,n,m1,m2,n1,n2 ;
int k ;
float x[(N-1)*(N-1)];
float y,s ;
float a1[N][N],b[N][N],a[N][N],A[N][N],p[N][N],c[N][N];
clrscr();
printf("请输入是几阶矩阵: ");
scanf("%d",&n);
printf("请以正确的顺序输入矩阵:");
for(i=0;in;i++)
{
for(j=0;jn;j++)
{
scanf("%f",&a[i][j]);
}
}
for(i=0;in;i++)
{
for(j=0;jn;j++)
{
printf("%f ",a[i][j]);
}
printf("");
}
getch();
if(Dvalue(a,n)==0)
{
printf("D=0,没有逆矩阵!");
exit(1);
}
s=1.0/Dvalue(a,n);
for(m1=0;m1n;m1++)
{
for(n1=0;n1n;n1++)
a1[m1][n1]=a[m1][n1];
}
for(i=0;in;i++)
{
for(j=0;jn;j++)
{
/*位于i行j列的元素变为0*/
for(m1=0;m1n;m1++)
{
for(n1=0;n1n;n1++)
if((m1==i)(n1==j))
a1[m1][n1]=0 ;
}
k=0 ;
for(m1=0;m1n;m1++)
{
for(n1=0;n1n;n1++)
{
if(a1[m1][n1]!=0)
{
x[k]=a1[m1][n1];
k++;
}
}
}
k=0 ;
for(m2=0;m2n-1;m2++)
{
for(n2=0;n2n-1;n2++)
{
b[m2][n2]=x[k];
k++;
}
}
/*对数组a1从新赋值*/
for(m1=0;m1n;m1++)
{
for(n1=0;n1n;n1++)
a1[m1][n1]=a[m1][n1];
}
y=pow(-1,i+j);
A[i][j]=y*Dvalue(b,n-1);
}
}
printf("A:");
for(i=0;in;i++)
{
for(j=0;jn;j++)
printf("%f ",A[j][i]);
printf("");
}
getch();
printf("1/A=%f ",s);
getch();
for(i=0;in;i++)
{
for(j=0;jn;j++)
c[i][j]=0 ;
}
for(i=0;in;i++)
{
for(j=0;jn;j++)
c[i][j]=c[i][j]+A[i][j]*s ;
}
printf("要求的逆矩阵是:");
for(i=0;in;i++)
{
for(j=0;jn;j++)
&n