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 |
But, I already checked that in my program.In Reply To:Re:Is there any special cases? Posted by:frkstyc at 2006-05-28 19:40:19 Here`s my code... (very dirty )... What`s wrong? #include <stdio.h> #include <math.h> int n; double admax; int admax_n; int main(){ int i; double dmax,ndmax; double dmin,ndmin; int dmax_n=0,ndmax_n=0; int dmin_n=0,ndmin_n=0; double dat; while(scanf("%d",&n)!=EOF){ admax_n=dmax_n=ndmax_n=dmin_n=ndmin_n=admax=0; for(i=0;i<n;i++){ scanf("%lf",&dat); if(!i){ admax=dat; dmax=dat; dmin=dat; admax_n=dmax_n=dmin_n=0; if(dat!=0){ while(fabs(admax) < 0.9995){ admax*=10; admax_n--; } while(fabs(dmax) < 0.9995){ dmax*=10; dmax_n--; } while(fabs(dmin) < 0.9995){ dmin*=10; dmin_n--; } while(fabs(admax) >= 9.9995){ admax/=10; admax_n++; } while(fabs(dmin) >= 9.9995){ dmin/=10; dmin_n++; } while(fabs(dmax) >= 9.9995){ dmax/=10; dmax_n++; } } }else{ ndmax=dat; ndmin=dat; if(ndmin!=0){ while(fabs(ndmin) < 0.9995){ ndmin*=10; ndmin_n--; } while(fabs(ndmin) >= 9.9995){ ndmin/=10; ndmin_n++; } }else ndmin_n=0; if(ndmax!=0){ while(fabs(ndmax) < 0.9995){ ndmax*=10; ndmax_n--; } while(fabs(ndmax) >= 9.9995){ ndmax/=10; ndmax_n++; } }else ndmax_n=0; dmax*=dat; dmin*=dat; if(dmin!=0){ while(fabs(dmin) < 0.9995){ dmin*=10; dmin_n--; } while(fabs(dmin) >= 9.9995){ dmin/=10; dmin_n++; } }else dmin_n=0; if(dmax!=0){ while(fabs(dmax) < 0.9995){ dmax*=10; dmax_n--; } while(fabs(dmax) >= 9.9995){ dmax/=10; dmax_n++; } }else dmax_n=0; if((ndmax<0 && dmax==0) || (!ndmax&&dmax>0)||(dmax > ndmax && dmax_n == ndmax_n) || (dmax_n > ndmax_n && dmax>0 && ndmax > 0) || (dmax > 0 && ndmax < 0) || (dmax<0 && ndmax<0 && dmax_n < ndmax_n)){ ndmax = dmax; ndmax_n = dmax_n; } if((ndmax<0 && dmin==0) || (!ndmax&&dmin>0)||(dmin > ndmax && dmin_n == ndmax_n) || (dmin_n > ndmax_n && dmin>0 && ndmax > 0) || (dmin > 0 && ndmax < 0) || (dmin<0 && ndmax<0 && dmin_n < ndmax_n)){ ndmax = dmin; ndmax_n = dmin_n; } if((ndmin>0 && dmax==0) || (!ndmin&&dmax<0)||(dmax < ndmin && dmax_n == ndmin_n) || (dmax_n < ndmin_n && dmax>0 && ndmin > 0) || (dmax < 0 && ndmin > 0) || (dmax<0 && ndmin<0 && dmax_n > ndmin_n)){ ndmin = dmax; ndmin_n = dmax_n; } if((ndmin>0 && dmin==0) || (!ndmin&&dmin<0)||(dmin < ndmin && dmin_n == ndmin_n) || (dmin_n < ndmin_n && dmin>0 && ndmin > 0) || (dmin < 0 && ndmin > 0) || (dmin<0 && ndmin<0 && dmin_n > ndmin_n)){ ndmin = dmin; ndmin_n = dmin_n; } dmax_n = ndmax_n; dmin_n = ndmin_n; dmax = ndmax; dmin = ndmin; if(dmin!=0){ while(fabs(dmin) < 0.9995){ dmin*=10; dmin_n--; } while(fabs(dmin) >= 9.9995){ dmin/=10; dmin_n++; } }else dmin_n=0; if(dmax!=0){ while(fabs(dmax) < 0.9995){ dmax*=10; dmax_n--; } while(fabs(dmax) >= 9.9995){ dmax/=10; dmax_n++; } }else dmax_n=0; } if((admax<0 && dmax==0)||(admax==0&&dmax>0)||(dmax > admax && dmax_n == admax_n) || (dmax_n > admax_n && dmax>0 && admax > 0) || (dmax > 0 && admax < 0) || (dmax<0 && admax<0 && dmax_n < admax_n)){ admax = dmax; admax_n = dmax_n; } } if(admax!=0){ while(fabs(admax) < 0.9995){ admax*=10; admax_n--; } while(fabs(admax) >= 9.9995){ admax/=10; admax_n++; } }else admax_n=0; if(admax_n){ printf("%.3lfE%d\n",admax,admax_n); }else{ printf("%.3lf\n",admax); } } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator