POJ 3299

本文介绍了一个使用C语言编写的程序,该程序能够根据输入的温度、湿度或露点中的两个参数,计算出缺失的第三个参数。程序通过指数公式计算饱和水汽压,并据此推算出相对湿度或露点温度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
#include <math.h>

double eForExp = 2.718281828;

double getT(double D, double H) {
    double h = 0.5555 * (6.11 * pow(eForExp, (5417.7530 * ((1/273.16) - (1/(D + 273.16))))) - 10.0);
    printf("T %.1f D %.1f H %.1f\n", H - h, D ,H);
    return H - h;
}

double getD(double T, double H) {
    double D = 1/(1/273.16 - log(((H - T)/(0.5555) + 10.0)/6.11)/5417.7530) - 273.16;
    printf("T %.1f D %.1f H %.1f\n", T, D, H);
    return D;
}

double getH(double T, double D) {
    double H = T + (0.5555) * (6.11 * exp(5417.7530 * (1/273.16 - 1/(D + 273.16))) - 10);
    printf("T %.1f D %.1f H %.1f\n", T, D, H);
    return H;
}

void caculate(double T, double D, double H) {
    if (T == 200) {
        getT(D, H);
    } else if (D == 200) {
        getD(T, H);
    } else if (H == 200) {
        getH(T, D);
    }
}

int main() {
    double D = 200.0;
    double T = 200.0;
    double H = 200.0;
    int lineParamNum = 0;
    while(1) {
        char c = 0;
        scanf("%c", &c);
        lineParamNum += 1;
        if (c == 'D') {
            scanf("%lf", &D);
        } else if (c == 'T') {
            scanf("%lf", &T);
        } else if (c == 'H') {
            scanf("%lf", &H);
        } else if (c == ' '){
            continue;
        } else if (c == '\n'){
            caculate(T, D, H);
            D = 200.0;
            T = 200.0;
            H = 200.0;
            lineParamNum = 0;
            continue;
        } else {
            break;
        }
    }

}

注意%.1lf 在G++下printf不能用, 要用 %.1f

ugly code.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值