| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
这题怎么这么BT!有什么陷阱吗?代码如下#include <stdio.h>
int main()
{
int ca,i,j,f;
double mat[5][5],b[5],a1,a2,a3,a,tmp;
scanf("%d",&ca);
while(ca--)
{
f=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++) scanf("%lf",&mat[i][j]);
scanf("%lf",&b[i]);
}
a=mat[0][0]*(mat[1][1]*mat[2][2]-mat[1][2]*mat[2][1])-
mat[0][1]*(mat[1][0]*mat[2][2]-mat[1][2]*mat[2][0])+
mat[0][2]*(mat[1][0]*mat[2][1]-mat[1][1]*mat[2][0]);
a1=b[0]*(mat[1][1]*mat[2][2]-mat[1][2]*mat[2][1])-
mat[0][1]*(b[1]*mat[2][2]-mat[1][2]*b[2])+
mat[0][2]*(b[1]*mat[2][1]-mat[1][1]*b[2]);
a2=mat[0][0]*(b[1]*mat[2][2]-mat[1][2]*b[2])-
b[0]*(mat[1][0]*mat[2][2]-mat[1][2]*mat[2][0])+
mat[0][2]*(mat[1][0]*b[2]-b[1]*mat[2][0]);
a3=mat[0][0]*(mat[1][1]*b[2]-b[1]*mat[2][1])-
mat[0][1]*(mat[1][0]*b[2]-b[1]*mat[2][0])+
b[0]*(mat[1][0]*mat[2][1]-mat[1][1]*mat[2][0]);
if(a!=0.0) f=1;
if(a1<0.0005&&a1>-0.0005) a1=0.0;
if(a2<0.0005&&a2>-0.0005) a2=0.0;
if(a3<0.0005&&a3>-0.0005) a3=0.0;
if(a<0.00005&&a>-0.0005) a=0.0;
printf("%.0lf %.0lfd %.0lfd %.0lfd\n",a1,a2,a3,a);
if(f)
{
printf("Unique solution: ");
tmp=a1/a;
if(tmp<0.0005&&tmp>-0.0005) printf("0.000");
else printf("%.3lf",tmp);
tmp=a2/a;
if(tmp<0.0005&&tmp>-0.0005) printf(" 0.000");
else printf(" %.3lf",tmp);
tmp=a3/a;
if(tmp<0.0005&&tmp>-0.0005) printf(" 0.000");
else printf(" %.3lf",tmp);
printf("\n");
}
else printf("No unique solution\n");
printf("\n");
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator