c – Stroustrup的书中的前后条件

c – Stroustrup的书中的前后条件,第1张

概述在编程:使用C的原理和实践的章节5.10.1中,有一个“试试这个”练习用于调试区域的错误输入.前提条件是长度和宽度的输入为0或负,而后置条件检查区域是0还是负.引用问题,“找到一对值,以便该版本区域的前提条件成立,但后置条件不成立.”到目前为止的代码是: #include <iostream>#include "std_lib_facilities.h"int area (int lengt 在编程:使用C的原理和实践的章节5.10.1中,有一个“试试这个”练习用于调试区域的错误输入.前提条件是长度和宽度的输入为0或负,而后置条件检查区域是0还是负.引用问题,“找到一对值,以便该版本区域的前提条件成立,但后置条件不成立.”到目前为止的代码是:

#include <iostream>#include "std_lib_facilitIEs.h"int area (int length,int wIDth) {    if (length <= 0 || wIDth <= 0) { error("area() pre-condition"); }    int a =  length * wIDth;    if(a <= 0) { error("area() post-condition"); }    return a;}int main() {int a;int b;while (std::cin >> a >> b) {    std::cout << area(a,b) << '\n';}system("pause");return 0;}

虽然代码似乎有效,但我无法理解哪些输入会使前置条件成功但会触发后置条件.到目前为止,我已经尝试将字符串输入到其中一个输入中,但这只是终止程序并尝试查找等效于0的ascii,但同样的结果.这应该是某种技巧问题还是我错过了什么?

解决方法 考虑为输入使用较大的值,以便乘法溢出. 总结

以上是内存溢出为你收集整理的c – Stroustrup的书中的前后条件全部内容,希望文章能够帮你解决c – Stroustrup的书中的前后条件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1229066.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存