第五章

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;

}

 



posted @ 2021-04-02 16:48  11YS  阅读(44)  评论(0编辑  收藏  举报