题意:给你H,D,T,任意的两个个输出这三个。
题目中有公式,不过还是学到了知识。
1:log 的用法。
2:exp(x)是e的x次方。
3:简化问题的思想。
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
char a;
float T,D,H;
while(1){
T = D = H = 101;
for(int i = 0;i < 2; i++){
cin>>a;
if(a == 'E')
return 0;
if(a == 'T')
cin>>T;
else if(a == 'D')
cin>>D;
else if(a == 'H')
cin>>H;
}
if(H == 101){
H = T + (0.5555)*(6.11*exp(5417.7530*(1/273.16 - (1/(D+273.16)))) - 10.0);
}
else if(T == 101){
T = H - (0.5555)*(6.11*exp(5417.7530*(1/273.16 - (1/(D+273.16)))) - 10.0);
}
else if(D == 101){
float h = H - T;
float e = h/(0.5555) + 10.0;
D = -1.0/(log(e/6.11)/5417.7530 - 1/273.16) - 273.16;
}
printf("T %.1f D %.1f H %.1f\n",T,D,H);
}
return 0;
}