#include<stdio.h>
#include<stdlib.h>
#include<math.h> int main()
{ double a[3][3]={0},volumn;
int i,j;
while(scanf("%lf",&a[0][0])!=EOF)
{
for(i=0;i<3;i++)
{
if(i==0)
{
for(j=1;j<3;j++)
scanf("%lf",&a[i][j]);
}
if(i!=0)
{
for(j=0;j<3;j++)
scanf("%lf",&a[i][j]);
}
}
volumn=abs(a[0][0]*a[1][1]*a[2][2]+a[1][0]*a[2][1]*a[0][2]+a[2][0]*a[1][2]*a[0][1]-(a[2][0]*a[1][1]*a[0][2]
+a[0][1]*a[1][0]*a[2][2]+a[0][0]*a[2][1]*a[1][2]));
printf("%.2f\n",volumn);
}
// system("PAUSE");
return 0;
}
题目
http://acm.whu.edu.cn/learn/problem/detail?problem_id=1014
解题思路,就是求变换矩阵的行列式。
Problem 1014 - Doraemon?s Flashlight
#include<stdio.h>
#include<math.h> int main()
{
int x1,x2,x3,y1,y2,y3,z1,z2,z3;
while(scanf("%d%d%d",&x1,&x2,&x3)!=EOF)
{
scanf("%d%d%d",&y1,&y2,&y3);
scanf("%d%d%d",&z1,&z2,&z3);
printf("%.2f\n",(double)abs(x1*(y2*z3-y3*z2)-y1*(x2*z3-x3*z2)+z1*(x2*y3-x3*y2)));
};
return 0;
}