POJ_3299
http://poj.org/problem?id=3299
求的不全是H,也有可能是T或D。
/* POJ_3299 humidex = temperature + h h = (0.5555)× (e - 10.0) e = 6.11 × exp [5417.7530 × ((1/273.16) - (1/(dewpoint+273.16)))] */ #include<stdio.h> #include<math.h> #include<string.h> #define EXP 2.718281828 double Hh(double da,double db){ double e,h; e = 6.11*pow(EXP,(5417.7530 * ((1/273.16) - (1/(db+273.16))))); h = (0.5555)*(e-10.0); // printf("e %e\nh %e\n",&e,&h); return da+h; } double Dd(double da,double db){ double e,h; h = db-da; e = h/0.5555+10.0; return 1/(1/273.16-log(e/6.11)/5417.7530)-273.16; } double Tt(double da,double db){ double e,h; e = 6.11*pow(EXP,(5417.7530 * ((1/273.16) - (1/(da+273.16))))); h = (0.5555)*(e-10.0); return db-h; } int main(){ char ca,cb; double da,db; while(true){ scanf("%c",&ca); if(ca=='E'){ break; } scanf("%lf %c %lf",&da,&cb,&db); if(ca=='T'&&cb=='D'){ printf("T %.1lf D %.1lf H %.1lf\n",da,db,Hh(da,db)); } else if(ca=='D'&&cb=='T'){ printf("T %.1lf D %.1lf H %.1lf\n",db,da,Hh(db,da)); } else if(ca=='T'&&cb=='H'){ printf("T %.1lf D %.1lf H %.1lf\n",da,Dd(da,db),db); } else if(ca=='H'&&cb=='T'){ printf("T %.1lf D %.1lf H %.1lf\n",db,Dd(db,da),da); } else if(ca=='D'&&cb=='H'){ printf("T %.1lf D %.1lf H %.1lf\n",Tt(da,db),da,db); } else if(ca=='H'&&cb=='D'){ printf("T %.1lf D %.1lf H %.1lf\n",Tt(db,da),da,db); } } return 0; }

浙公网安备 33010602011771号