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