注意看题目,每个输入只有两个数但是你输出的时候要输出3个数T、D、H所以要通过那个公式去转化求出这3个数然后输出,你这个程序只能输出样例为T、D输入时的结果。
还有一个要注意的是数据类型的问题:题目中给的数据的有效数字均是小数点后4位,为了防止精度丢失,一般都是采取double型数据,数据的输入为scanf("%lf"),根据题目中输出给出的特点,输出应为小数点后一位则输出格式为printf("%.1lf");
代码如下:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
double a,b,T,D,H;
char first,second;
while (scanf("%c",&first)&&first!='E')
{
scanf("%lf %c %lf",&a,&second,&b);
if ((first=='T'&&second=='D')||(first=='D'&&second=='T'))
{
if (first=='T')
{
T=a;
D=b;
}
else
{
T=b;
D=a;
}
double e=6.11 * exp (5417.7530 * ( (1/273.16) - (1/(D+273.16) ) ));
double h=0.5555*(e-10.0);
H=D+h;
printf("%T %.1lf %D %.1lf %H %.1lf",T,D,H);
}
else if ((first=='T')&&(second=='H')||(first=='H')&&(second=='T'))
{
if (first=='T')
{
T=a;
H=b;
}
else
{
T=b;
H=a;
}
double h=H-T;
double e=h/0.5555+10.0;
D =( 1/(-log(e/6.11)/5417.7530 + (1/273.16))-273.16);
printf("%T %.1lf %D %.1lf %H %.1lf",T,D,H);
}
else if ((first=='D'&&second=='H')||(first=='H'&&second=='D'))
{
if (first=='D')
{
D=a;
H=b;
}
else
{
D=b;
H=a;
}
double e=e=6.11 * exp (5417.7530 * ( (1/273.16) - (1/(D+273.16) ) ));
double h=0.5555 * (e-10.0);
T=H-h;
printf("T %.1lf D %.1lf H %.1lf\n",T,D,H);
}
}
return 0;
}
分享到:
相关推荐
这些题目来源于POJ (Peking University Online Judge) 平台,通常被称为“水题”,意指相对简单,适合编程新手进行实践训练。 ### 一、关于POJ平台 POJ(Peking University Online Judge)是由北京大学主办的一个...
此外,该计划还提供了一些水题供选手练习和提高自信心,如 POJ3299、POJ2159 和 POJ2739 等题目。 在初期阶段,选手需要掌握基本算法,如枚举、贪心、递归和分治法等。然后,需要学习图算法,如深度优先遍历、广度...
1000 1003 1004 1005 1006 1008 1012 1028 1036 1045 1046 1047 1087 1163 1183 1207 1218 1247 ...3299 3302 3325 3372 3438 3507 3517 3518 3589 3617 3619 3620 3623 3627 3632 3637 3650 3663 3664 3672 3673 3716
本文主要介绍的是关于NOIP(全国青少年信息学奥林匹克竞赛)和NOI(全国青少年信息学奥林匹克联赛)的信息学竞赛以及ACM-ICPC(国际大学生程序...同时,一些简单的水题如poj3299、poj2159等可用于巩固基础和增强信心。
最后,建议在OJ(在线判题)平台上进行练习,如POJ提供的水题,如poj3299、poj2159、poj2739、poj1083、poj2262、poj1503、poj3006、poj2255、poj3094等,这些题目可以帮助巩固基础,增强信心。 通过系统地学习和...