• 第五章


    1. case标签必须是整型常量表达式

    5.3用逗号运算符重写1.4.1节的while循环,使它不再需要块,观察改写之后的代码可读性提高了还是降低了。

    int i = 50, sum = 0;
    while (i <=100)
        sum += i, ++i;

    5.13下面显示的每个程序都含有一个常见的编码错误,指出错误在哪里,然后修改它们。

    (a) unsigned aCnt = 0, eCnt = 0, iouCnt = 0;
        char ch = next_text();
        switch (ch) {
            case 'a': aCnt++;
            case 'e': eCnt++;
            default: iouCnt++;
        }
    (b) unsigned index = some_value();
        switch (index) {
            case 1:
                int ix = get_value();
                ivec[ ix ] = index;
                break;
            default:
                ix = ivec.size()-1;
                ivec[ ix ] = index;
        }
    (c) unsigned evenCnt = 0, oddCnt = 0;
        int digit = get_num() % 10;
        switch (digit) {
            case 1, 3, 5, 7, 9:
                oddcnt++;
                break;
            case 2, 4, 6, 8, 10:
                evencnt++;
                break;
        }
    (d) unsigned ival=512, jval=1024, kval=4096;
        unsigned bufsize;
        unsigned swt = get_bufCnt();
        switch(swt) {
            case ival:
                bufsize = ival * sizeof(int);
                break;
            case jval:
                bufsize = jval * sizeof(int);
                break;
            case kval:
                bufsize = kval * sizeof(int);
                break;
        }

    (1)缺break

    (2)default中没有i的定义

    (3)case 1: case 3: case 5: case 7: case 9:

    (4)case标签必须是整型常量表达式const unsigned ival=512, jval=1024, kval=4096;

    5.14编写一段程序,从标准输入中读取若干string对象并查找连续重复出现的单词
    ,所谓连续重复出现的意思是:一个单词后面紧跟着这个单词本身。要求记录连续重复出现的最大次数以及对应的单词。
    如果这样的单词存在,输出重复出现的最大次数;如果不存在,输出一条信息说明任何单词都没有连续出现过。 例如:如果输入是:
    using namespace std;
    
    int main()
    {
            string word;
            int num = 1, lag = 0;
            vector<string> v;
            while (cin >> word)
            {
                    v.push_back(word);
            }
    
            if(v.size() == 1 || v.size() == 0)
                    cout << "enter enough number!" << endl;
            else{
                    for(int i = 1; i < v.size(); ++i)
                    {
                            if(v[i] == v[i - 1])
                            {
                                    ++num;
                                    if(num > lag)
                                            lag = num;
                            }
                            else
                            {
                                    num = 1;
                            }
                    }
            }
            cout << lag << endl;
    
    }


  • 相关阅读:
    对每项物品,找出最贵价格的物品的经销商
    每项物品的的最高价格是多少?
    找出最贵物品的编号、销售商和价格
    查数据库有哪些表、查数据库
    取某字段不为空的数据is not null
    mysql匹配模式
    找出包含正好5个字符的名字
    要想找出正好包含5个字符的名字
    要想找出包含“w”的名字
    要想找出以“y”结尾的名字
  • 原文地址:https://www.cnblogs.com/11ys/p/14611461.html
Copyright © 2020-2023  润新知