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