我们在课堂上有一个问题:我们应该从用户那里得到一个数字(scanf),我们应该检查它是整数还是双数。
如果它是double,我们应该写“Double”,如果它是一个整数,我们应该写“Integer”
如何检查它是整数还是双精度? 当然我们可以使用if / else。
我将如何做,示意图:
在步骤5中首先检查整数然后检查浮点数是很重要的,因为整数输入通常也可以解析为浮点数,因此整数应该优先。
更新:
这个问题确实没有完全确定。 也就是说,它没有指定可能允许的整数基数。
…如果用户给定的数字是整数还是双数?
……我们应该从用户那里获得一个号码。 (scanf)……
让我们考虑各种输入:
其他考虑:
继续这些合理的假设。
答:输入的字符不是太多。 整数适合long long
。
B.溢出/下溢/倒圆不是问题。
C.如果解析为两者,则将其称为整数 。
D.要求意味着使用scanf()
– yuk – 而不是使用fgets()
const char *TestInput(void) { char buf[100]; if (sscanf(" %99[^n]", buf) != 1) return "No interesting input"; char end; long long ll; if (sscanf(buf, "%lli %c", &ll, &end) == 1) return "Integer"; double d; if (sscanf(buf, "%lf %c", &d, &end) == 1) return "double"; return "neither"; }
以上就是c/c++开发分享如何知道用户给出的数字是整数还是双数?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/519238.html