http://acm.hit.edu.cn/hoj/problem/view?id=1526
分别计算冰和水的E-T函数
利用体系总能量判断状态
#include <stdio.h>
#include <math.h>
const double CW = 4.19, CI = 2.09;
const double BW = 397.7, BI = 62.7;
conse double EM = 335;
int main()
{
double mw, mi, tw, ti;
double ew, ei, e, t, mi_;
while (scanf("%lf %lf %lf %lf", &mw, &mi, &tw, &ti) != EOF)
{
if( mw == 0 && mi == 0 )
break;
ew = mw * (CW * tw + BW);
ei = mi * (CI * ti + BI);
e = (ew + ei) / (mw + mi);
if (e > BW)//water
{
t = (e - BW) / CW;
printf("0.0 g of ice and %.1lf g of water at %.1lf C\n", mw + mi, t);
}
else if (e < BI)//ice
{
t = (e - BI) / CI;
printf("%.1lf g of ice and 0.0 g of water at %.1lf C\n", mw+mi, t);
}
else//mixed
{
mi_ = (BW - e) * (mw + mi) / EM;
printf("%.1lf g of ice and %.1lf g of water at 0.0 C\n", mi_, mw + mi - mi_);
}
}
return 0;
}