将0.5变为1而不是0

问题描述 投票:0回答:1

第一次来这里。我在这个 c 程序中的圈复杂度应该是 1,所以我无法编写 if else 语句。

#include <stdio.h>
int main()
{ 
    int U,V;
    scanf("%d %d",&U,&V);
    printf("%0d",(U*V)/2);
}

提前致谢!

c double rounding
1个回答
0
投票

表达式

(U*V)/2
执行整数除法,因为所有操作数都是整数。这会截断任何小数部分。

如果要向上舍入,首先需要进行浮点除法,可以通过将一个操作数更改为浮点类型来完成。然后,您可以将结果传递给

round
函数,该函数会舍入到最接近的整数,其中 0.5 的情况会向上舍入。

printf("%0d",(int)round((U*V)/2.0));
© www.soinside.com 2019 - 2024. All rights reserved.