加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – Stroustrup的书中的前后条件

发布时间:2020-12-16 07:23:00 所属栏目:百科 来源:网络整理
导读:在编程:使用C的原理和实践的章节5.10.1中,有一个“试试这个”练习用于调试区域的错误输入.前提条件是长度和宽度的输入为0或负,而后置条件检查区域是0还是负.引用问题,“找到一对值,以便该版本区域的前提条件成立,但后置条件不成立.”到目前为止的代码是: #
在编程:使用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,但同样的结果.这应该是某种技巧问题还是我错过了什么?

解决方法

考虑为输入使用较大的值,以便乘法溢出.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读