相关疑难解决方法(0)

在 C 中如何安全地找到 2 个有符号整数之间的绝对差?

绝对差是两个数字之间差的绝对值。假设我有 2 个int变量(xy),我想找到绝对差。一个简单的解决方案是:

unsigned diff = abs(x-y);
Run Code Online (Sandbox Code Playgroud)

然而,如果发生溢出(例如 if xisINT_MINyis ) ,这些会调用未定义的行为并给出不正确的结果INT_MAX。这会返回1(假设环绕行为)而不是按UINT_MAX预期返回。

c math absolute-value difference

5
推荐指数
1
解决办法
1261
查看次数

将分割舍入为整数的正确方法是什么?

我正在划分2个整数,并希望得到一个整数作为结果.我想要正确的Math.Round()方法,所以当我除以时,无论如何,它总是舍入到下一个整数.以下是一些期望如下的例子.

int result = (6/4); // = 2
int result = (3/4);  // = 1
int result = (1/4);  // = 1
int result = (8/4);  // = 2
int result = (9/4);  // = 3
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?

c# math

4
推荐指数
1
解决办法
1514
查看次数

如果我将3除以2,我希望答案为2(即1.5舍入为2)

如何在C中得到一个数字的上限?

如果我将3除以2,我希望答案为2(即1.5舍入为2).

c decimal rounding

3
推荐指数
1
解决办法
2565
查看次数

优化案例陈述

我们有一种将命令数据写入设备的方法.该方法首先将数据转换为设备接受的格式,然后将数据写入串行端口.数据转换使用下面给出的case语句完成.对于10个命令,我们需要转换数据.对于其他命令,我们不必转换数据(大约10个命令).

客户投诉代码未经优化.经常使用一些不需要数据转换的命令.

是否会直接if else语句优化代码?
在这种情况下,还有其他选项来优化代码吗?

switch (cmd_no)
{
case CMD_WR_ACC:
    converted_command_data = (INT32)((((DOUBLE)cmd_data * CMD_WR_ACC_PARA1) / CMD_WR_ACC_PARA2) + 0.5);
    break;
case CMD_WR_BIAS:
    converted_command_data = (INT32)((((DOUBLE)cmd_data * CMD_WR_BIAS_PARA1) / CMD_WR_BIAS_PARA2) + 0.5);
    break;
case CMD_WR_SUP:
    converted_command_data = (INT32)((((DOUBLE)cmd_data * CMD_WR_SUP_PARA1) / CMD_WR_SUP_PARA2) + 0.5);
    break;
case CMD_WR_FIL:
    converted_command_data = (INT32)((((DOUBLE)cmd_data * CMD_WR_FIL_PARA1) / CMD_WR_FIL_PARA2) + 0.5);
    break;
    .
    .
default:
    converted_command_data = cmd_data;
    break;
}
Run Code Online (Sandbox Code Playgroud)

c optimization

1
推荐指数
1
解决办法
441
查看次数

在c中,我如何使1200/500 = 3

在C中,我如何使1200/500 = 3.

我正在做家庭作业.

运输计算器:Speedy Shipping公司将根据您的包装重量以及您送包裹的距离来运送您的包裹.他们只会运送重达10磅的小包装.您需要有一个程序来帮助您确定他们将收取多少费用.费用基于每运送500英里.它们不是按比例分配的,即600英里与900英里的费用相同.

这是他们给你的表:

Package Weight--------------------------Rate per 500 miles shipped

2 pounds or less------------------------$1.50

More than 2 but not more than 6---------$3.70

More than 6 but not more than 10--------$5.25

这是一个测试用例.

测试用例数据:

重量:5.6磅
英里:1200英里

预期成绩:

您的运费是11.10美元


我的答案一直持续到7.40

c ceil

0
推荐指数
2
解决办法
1117
查看次数

如何舍入非浮点数?

如何舍入非浮点数?例如9107609降至91或911等

c math integer numbers

-2
推荐指数
1
解决办法
102
查看次数

标签 统计

c ×5

math ×3

absolute-value ×1

c# ×1

ceil ×1

decimal ×1

difference ×1

integer ×1

numbers ×1

optimization ×1

rounding ×1