C程序中剩余百分比的计算

C程序中剩余百分比的计算,c,math,embedded,nxp-microcontroller,C,Math,Embedded,Nxp Microcontroller,我正在为NXP MCU板开发代码。我必须使用C语言编程 我的目标: 使用超声波传感器测量距离。预定义的距离=180厘米。输出应为剩余距离的百分比。例如:如果传感器测量的距离为100cm,则计算后的输出应为:44.44%。如果测量的距离为180+,则计算后的输出应为负百分比 问题:我开发了以下代码。在代码中进行数学运算(数字操作)之前,传感器按预期给出以厘米为单位的输出,这是在RM上观察到的。但当我在代码中添加了几行与数学相关的代码时,输出现在为空。传感器工作正常,但在代码中添加公式后,我没有得到

我正在为NXP MCU板开发代码。我必须使用C语言编程

我的目标: 使用超声波传感器测量距离。预定义的距离=180厘米。输出应为剩余距离的百分比。例如:如果传感器测量的距离为100cm,则计算后的输出应为:44.44%。如果测量的距离为180+,则计算后的输出应为负百分比

问题:我开发了以下代码。在代码中进行数学运算(数字操作)之前,传感器按预期给出以厘米为单位的输出,这是在RM上观察到的。但当我在代码中添加了几行与数学相关的代码时,输出现在为空。传感器工作正常,但在代码中添加公式后,我没有得到计算的输出。以下是我的代码:

#include "mbed.h"
#include "hcsr04.h"

HCSR04  usensor1(A4,A5);
unsigned int distance;
float dist_remaining;
float dist_percent;

int main()
{
    int a = 180;
    while(1)
    {
        usensor1.start();
        wait_ms(500); 
        distance = usensor1.get_dist_cm();
        dist_remaining = a-distance;
        dist_percent = (dist_remaining/180)*100;
        printf("\n\rPercent remaining: ", dist_percent );
    }
}
输出:


请检查并告诉我从传感器获取的
int-distance
计算是否有任何错误,好吗?我对C语言不是很熟悉。因此,我将感谢您提供的任何帮助。感谢您的时间和帮助。

感谢Dmitri,更改了以下
printf
行:

printf("\n\rPercent remaining: %f\n", dist_percent);

也要感谢弗雷德克和尤诺什。感谢您的帮助。

您使用的是整数数学,对于距离u剩余小于180的任何值,
距离u剩余/180
将为零。我认为弗雷德克是对的。要找到答案,请尝试
(dist_remaining*100)/180
并报告结果。您的格式字符串不包含格式说明符。尝试打印(“\r\n剩余百分比:%f”,距离百分比)或类似的东西。投票结束这个简单的打字错误。