📄 n阶行列式.cpp
字号:
#include<iostream.h>
const int n=100;
float f(float a[n],int k)
{
if(k==0)
return 0;
if(k==1)
return a[0];
int flag=k-1;
float temp,bei=1.0;
if(k*k==4)
return a[0]*a[3]-a[1]*a[2];
for(int i=0;i<k;i++)
{
if(a[i]!=0)
{
flag=i;
temp=a[flag];
break;
}
}
if(flag>k-1)
return 0;
else
{
for(i=flag+1;i<k;i++)
{
if(a[i]!=0)
{ float king=a[i];
bei*=a[flag]/king;
for(int j=i;j<k*k;j++)
{
if(j%k==i)
a[j]=a[j]*a[flag]/king-a[j+flag-i];
}
}
}
}
int tap=k;
cout<<"xia yi ge ju zheng shi:"<<endl;
for(i=k;i<k*k;i++)
{
if(i%k==flag)
{
tap++;
}
else {
a[i-tap]=a[i];
cout<<a[i-tap]<<" ";
}
if((i-tap+1)%(k-1)==0) cout<<endl;
}
if(flag%2==0)
return temp*f(a,k-1)/bei;
return -temp*f(a,k-1)/bei;
}
void main()
{
int jie;
float array[n];
cout<<"请输入行列式的阶数!"<<endl;
cin>>jie;
while(jie<0)
{
cout<<"你的输入有错误,请保证行列式的阶数非负!"<<endl;
cin>>jie;
}
if(jie!=0)
{
cout<<"请输入行列式元素!"<<endl;
for(int i=0;i<jie*jie;i++)
cin>>array[i];
}
cout<<"此行列式的最后结果是:"<<f(array,jie)<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -