求三阶行列式的值
任务描述
题目要求读入一个三阶行列式,输出这个行列式的值。
输入格式:
输入数据共三行,每行三个数字(都是整数,绝对值不大于100),代表一个三阶行列式。
输出格式:
输出行列式的值。
输入示例
1 2 3
6 5 4
8 7 9
输出示例
-21
思路
对于三阶行列式可以用对角线法去求值,对角线法就是行列式的主对角线之和减去副对角线之和,即
(注:对角线法只适用于二阶,三阶的行列式)
代码
#include<stdio.h>
int main()
{
int i,a[3][3],j,sum1,sum2,sum;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
sum1=a[0][2]*a[1][0]*a[2][1]+a[0][1]*a[1][2]*a[2][0]+a[0][0]*a[1][1]*a[2][2]; //主对角线之和
sum2=a[2][2]*a[0][1]*a[1][0]+a[2][1]*a[1][2]*a[0][0]+a[0][2]*a[1][1]*a[2][0]; //副对角线之和
sum=sum1-sum2;
printf("%d",sum);
return 0;
}