第十六周 程序阅读(2)
来源:互联网 发布:淘宝评价管理在哪里找 编辑:程序博客网 时间:2024/05/10 14:34
问题及代码:
/**Copyright (c) 2015,烟台大学计算机学院*All rights reserved.*文件名称:test.cpp*作者:吴胜男*完成日期:2015年06月21日*版本号:v1.0**问题描述:阅读下面的程序,写出输出结果(2)*输入描述:*程序输出:*/#include <iostream>using namespace std;namespace CounterNameSpace{int upperbound;int lowerbound;class counter{ int count;public: counter(int n) { if (n <= upperbound ) { count = n; } else { count = upperbound; } } void reset(int n) { if (n < upperbound) { count = n; } } int run() { if (count > lowerbound) { return count--; } else return lowerbound; }};}int main(){ CounterNameSpace::upperbound = 100; CounterNameSpace::lowerbound = 0; CounterNameSpace::counter ob1(10);int i; do { i = ob1.run(); cout << i << " "; } while (i > CounterNameSpace::lowerbound); cout << endl; CounterNameSpace::counter ob2(20); do { i = ob2.run(); cout << i << " "; } while (i > CounterNameSpace::lowerbound); cout << endl; ob2.reset(100); do { i = ob2.run(); cout << i << " "; } while (i > CounterNameSpace::lowerbound); cout << endl; return 0;}
运行结果:
知识点总结:这个程序开始自己想的运行结果是从count-1开始的,显然不对,忘记了一个知识点,就是自增运算i++是在使用i之后,i的值加一,例如:i=3;j=i++;输出结果j=3;然后i值变为4.而++i就是恰好相反,j=++i;输出j=4;当count=0时已经不满足count > lowerbound,直接return lowerbound;输出i=0;在最后的do,while语句中在之前的程序中,count已经减到0,直接输出lowerbound。最后一行的结果即为0.
学习心得:利用好单步调试。
0 0
- 第十六周 阅读程序一(2)
- 第十六周阅读程序(2)
- 第十六周阅读程序(2)
- 第十六周 程序阅读(2)
- 第十六周程序阅读(2)
- 第十六周项目 阅读程序(2)
- 第十六周阅读程序(2)
- 第十六周阅读程序4(2)
- 第十六周阅读程序2
- 第十六周--阅读程序2
- 第十六周阅读程序2
- 第十六周 程序阅读(补充阅读)
- 第十六周 阅读程序
- 第十六周阅读程序
- 第十六周阅读程序
- 第十六周 阅读程序
- 第十六周 程序阅读
- 第十六周 程序阅读
- 组合数学八题
- windows 开机速度优化
- POJ 1350 Cabric Number Problem(水~)
- poj1006-生理周期-中国剩余定理
- Java内部类(三)匿名内部类
- 第十六周 程序阅读(2)
- Spring MVC controller和jsp页面传值
- JavaSE8新特性——lambda表达式1
- C++格式化输出,C++输出格式控制
- IDEA 及 Gradle 使用总结
- Java基础08——I/O流<一>
- 编程之美 3.1字符串移位包含的问题
- 【群视频】笔记 - 2015.06.10
- 关于我自己的三个层次