c - 我试图用 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;
任何帮助表示赞赏
解决方案
您的编译器已经告诉您这里出了什么问题:
x=(DI - 14.5 * 0.55(1 - 0.01 * RH))/(1 - 0.55(1 - 0.01*RH));
像这样的东西:
错误:调用的对象类型“双”不是函数或函数指针
那是因为0.55(1)
是数学,而不是 C。你需要一个*
.
在想知道为什么您的代码不起作用之前,请始终启用并检查您的编译器警告。
推荐阅读
- azure - 将本地 API 导入到 Azure API 管理
- php - Unyson 演示导入器无效的资源目录
- iis - 在 Azure Web App 上使用 web.config 将子域重写到目录
- soap - 使用基于 MTOM 的 WSDL 文件进行测试
- c - 无法创建全局结构数组
- node.js - bcrypt 不能在 docker 中使用来自 Windows 主机的 linux 容器
- raspberry-pi - GTK:g_timeout_add() 树莓派
- reactjs - 如何删除使用电子邮件和密码在 Firebase 中注册的用户?使用反应
- django - 就通配符而言,路径如何等同于 django 2.0 中的 url?
- node.js - ERC721 mint() 返回“无效地址”错误