我正在做一个计算多边形表面积的代码除其他外,用户必须输入多边形的边数(不能是小数)。我需要它符合“如果”的条件:

if (side_a < 0 || radius < 0 ||  diameter < side_a || num_pol<3 ||...

代码必须是:“如果num_pol是十进制的”
此外,我必须计算一个多边形的面积,其中有一个圆。公式为:半径^2*边数*切线(180/边数)。所以我在C中写道:
pow(radius,2)*num_pol*tan(P/(2*num_pol)) //P is pi//

对吗?
谢谢您。

最佳答案

您可以使用:ceilf(side) == side && side > 0
这是验证码:

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

int main(void) {
    // your code goes here
    double side;
    side = 3.0;
    if(ceilf(side) == side && side > 0)
        printf("true");
    else
        printf("false");
    side = 3.1;
    if(ceilf(side) == side && side > 0)
        printf("true");
    else
        printf("false");
    side = 3.6;
    if(ceilf(side) == side && side > 0)
        printf("true");
    else
        printf("false");
    side = -3.6;
    if(ceilf(side) == side && side > 0)
        printf("true");
    else
        printf("false");
    return 0;
}

关于c - 我如何确保用户在C中输入整数而不是小数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49832524/

10-09 15:33