首页 > 解决方案 > 我试图用 C 编写一个 Discomfort Index 程序,但我卡住了

问题描述

我已经构建了程序的主要部分,但任务要求我们添加一个功能,如果指数高于“无不适”区域,程序会返回指数达到“无不适”所需的温度降低"(考虑到湿度是一致的)。我面临的问题是我设置了一个名为 x 的变量,我想代表所需的温度降低,但是当我尝试形成一个方程来求解 x 时,它只打印 0。我很确定我不能给编译器一个方程解决但有什么办法可以打印所需的减少量?

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

float main()
{
    float T, RH, x, y;
    printf("Insert current temperature in Celsius: \n");
    scanf("%f", &T);
    printf("Insert current humidity percentage: \n");
    scanf("%f", &RH);
    float DI = T - 0.55 * (1 - 0.01 * RH) * (T - 14.5);
    if  (DI < 21)
         printf("No discomfort");
    else if (DI >= 21 && DI < 24)
         printf("Under 50 percent population feels discomfort");
    else if (DI >= 24 && DI < 27)
        printf("Most 50 percent population feels discomfort");
    else if (DI >= 27 && DI < 29)
        printf("Most of population suffers discomfort");
    else if (DI >= 29 && DI < 32)
        printf("Everyone feels severe stress");
    else if (DI >= 32)
        printf("State of medical emergency");

    if (DI >= 21)
        DI=21;
    x=(DI - 14.5 * 0.55(1 - 0.01 * RH))/(1 - 0.55(1 - 0.01*RH));
    printf("\nThe temperature should be decreased to %.2f degrees\n", x);
    return 0;

任何帮助表示赞赏

标签: c

解决方案


您的编译器已经告诉您这里出了什么问题:

x=(DI - 14.5 * 0.55(1 - 0.01 * RH))/(1 - 0.55(1 - 0.01*RH));

像这样的东西:

错误:调用的对象类型“双”不是函数或函数指针

那是因为0.55(1)是数学,而不是 C。你需要一个*.

在想知道为什么您的代码不起作用之前,请始终启用并检查您的编译器警告。


推荐阅读