Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何确保用户在c中输入整数而不是小数?_C - Fatal编程技术网

如何确保用户在c中输入整数而不是小数?

如何确保用户在c中输入整数而不是小数?,c,C,我正在制作一个计算多边形表面积的代码。除其他外,用户必须输入多边形的边数,不能是小数。我需要它符合“如果”的条件: 对吗? 多谢各位 如何确保用户在c中输入整数而不是小数 使用整数类型,例如int 至于公式,最好的方法是用各种例子测试你的程序。此建议适用于您的所有程序:在要求其他人审阅代码之前测试代码 如何确保用户在c中输入整数而不是小数 使用整数类型,例如int 至于公式,最好的方法是用各种例子测试你的程序。此建议适用于您的所有程序:在要求其他人查看代码之前先测试代码。您可以使用:ceilf(

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

对吗? 多谢各位

如何确保用户在c中输入整数而不是小数

使用整数类型,例如
int

至于公式,最好的方法是用各种例子测试你的程序。此建议适用于您的所有程序:在要求其他人审阅代码之前测试代码

如何确保用户在c中输入整数而不是小数

使用整数类型,例如
int

至于公式,最好的方法是用各种例子测试你的程序。此建议适用于您的所有程序:在要求其他人查看代码之前先测试代码。

您可以使用:
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;
}
#包括
#包括
内部主(空){
//你的密码在这里
双面;
侧面=3.0;
如果(ceilf(侧)=侧和侧>0)
printf(“真实”);
其他的
printf(“假”);
侧面=3.1;
如果(ceilf(侧)=侧和侧>0)
printf(“真实”);
其他的
printf(“假”);
侧面=3.6;
如果(ceilf(侧)=侧和侧>0)
printf(“真实”);
其他的
printf(“假”);
侧面=-3.6;
如果(ceilf(侧)=侧和侧>0)
printf(“真实”);
其他的
printf(“假”);
返回0;
}
您可以使用:
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;
}
#包括
#包括
内部主(空){
//你的密码在这里
双面;
侧面=3.0;
如果(ceilf(侧)=侧和侧>0)
printf(“真实”);
其他的
printf(“假”);
侧面=3.1;
如果(ceilf(侧)=侧和侧>0)
printf(“真实”);
其他的
printf(“假”);
侧面=3.6;
如果(ceilf(侧)=侧和侧>0)
printf(“真实”);
其他的
printf(“假”);
侧面=-3.6;
如果(ceilf(侧)=侧和侧>0)
printf(“真实”);
其他的
printf(“假”);
返回0;
}


我对它进行了测试,它似乎起了作用,但有时我看不到整个画面如果我从一开始就使用int,如果用户输入14.67?或者如果使用
双精度
,会发生什么,如果用户输入类似于:
之类的内容会发生什么?我们的作业说我们可以假设只有数字会被键入。我测试了它,它似乎有效,但有时我看不到整个图片。如果我从一开始就使用int,如果用户输入类似于:14.67的内容会发生什么?如果使用
双精度
,如果用户输入类似于:
blah
,会发生什么情况?我们的作业说我们可以假设只输入数字,您能进一步解释吗?我不明白。是的,当然,我很高兴但是。。。为什么要将边数存储在一个
double
?在他的计算中需要这样做,以避免额外的类型转换,因为他的公式等于double。将int转换为double比使用一个数据类型可以存储无效值的变量更好。您能进一步解释一下吗?我不明白。是的,当然,我很高兴但是。。。为什么要在一个
double
中存储边数?在他的计算中需要这样做,以避免额外的类型转换,因为他的公式等于double。将int转换为double比使用一个数据类型的变量来存储无效值更好。。。
#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;
}