程序改错

/*
* 程序的版权和版本声明部分
* Copyright (c)2012, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: object.cpp
* 作者:王飞
* 完成日期: 2013年4月 6日
* 版本号: v1.0
* 输入描述:无
* 问题描述:静态体验
* 程序输出:略
*/


#include <iostream>
#include <string>
using namespace std;
class Box
{
 public:
 Box(int h,int w,int l):height(h),width(w),length(l){}
 int volume(){return height*width*length;};
 private:
 int height;             //静态的数据成员
 int width;
 int length;
};
int main()
{
    Box b(2,3,4);
    cout<<"volume is "<<b.volume()<<endl;
    return 0;
}


 

输出结果:

 

心得体会:

对于静态的成员数据来说,是不能够在类内进行初始化的!

### 程序改错题详细解答 根据文件中的程序改错题,我们将逐一分析存在的错误,并提供正确的代码版本。以下是详细的解析和改正后的代码。 --- #### 题目1:字典成绩统计 **原代码:** ```python D = {'001': 90, '002': 85, '003': 75, '004': 69, '005': 95} S = l m = len(D) for x in D: S = s + D[x] print(s, s / m) ``` **错误分析:** 1. **`S = l`**: - 错误:`l`未定义。 - 正确:`S`应该初始化为0,用于累加成绩总分。 2. **`S = s + D[x]`**: - 错误:`s`未定义,应该是`S`。 - 正确:`S = S + D[x]`。 **改正后的代码:** ```python D = {'001': 90, '002': 85, '003': 75, '004': 69, '005': 95} S = 0 # 【改正1】初始化S为0 m = len(D) for x in D: S = S + D[x] # 【改正2】使用S进行累加 print(S, S / m) ``` --- #### 题目2:字符串数字字符删除 **原代码:** ```python x = input('输入字符:') s = '' for i in x: if 9 >= ord(i) >= '0': break s = s + i print(s) ``` **错误分析:** 1. **`if 9 >= ord(i) >= '0'`**: - 错误:`ord(i)`返回的是字符的ASCII码值,不能直接与字符比较。 - 正确:应直接比较字符范围`'0' <= i <= '9'`。 2. **`break`**: - 错误:`break`会立即退出整个循环。 - 正确:应该使用`continue`跳过当前循环,继续下一个字符的处理。 **改正后的代码:** ```python x = input('输入字符:') s = '' for i in x: if '0' <= i <= '9': continue # 【改正1】跳过数字字符 s = s + i print(s) ``` --- ### 知识点总结 1. **变量初始化**: - 在累加或计数操作前,确保相关变量已正确初始化。 - **详解**:初始化变量可以避免未定义变量错误,确保程序逻辑正确。 2. **条件判断和循环控制**: - 使用`if`语句进行条件判断时,确保条件表达式的正确性。 - **详解**:条件表达式应符合逻辑关系,避免使用错误的操作符或不适当的值比较。 3. **字符串处理**: - 熟悉字符范围和`ord()`函数的使用,能够准确判断字符类型。 - **详解**:直接比较字符范围比使用`ord()`更简洁明了,适合字符判断。 希望这些详细的解答能帮助你更好地理解和改正程序中的错误。如果有更多问题,欢迎继续提问!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值