第三章 3.5.2 访问数组元素

来源:互联网 发布:mysql大数据统计报表 编辑:程序博客网 时间:2024/06/03 20:00

3.30指出下面代码的索引错误。

constexpr size_t array_size = 10;int ia[array_size];for (size_t ix = 1; //下标应从0开始        ix <= array_size; //不能大于等于数组大小        ++ix){    ia[ix] = ix;}

3.31编写一段程序,定义一个含有10个int的数组,令每个元素的值就是其下标值。

#include <iostream>#include <string>using namespace std;int main(){    const size_t array_size = 10;    int ia[array_size];    for (size_t ix = 0; ix < array_size; ++ix)    {        ia[ix] = ix;        cout << ia[ix] << " ";    }    return 0;}

3.32 将上一题刚刚创建的数组拷贝给另外一个数组。利用vector重写程序,实现类似的功能。

//数组#include <iostream>#include <string>using namespace std;int main(){    const size_t array_size = 10;    int ia[array_size];    int ib[array_size];    //赋值    for (size_t ix = 0; ix < array_size; ++ix)    {        ia[ix] = ix;        cout << ia[ix] << " ";    }    cout << endl;    //拷贝    for (size_t i = 0; i < array_size; ++i)    {        ib[i] = ia[i];        cout << ia[i] << " ";    }    return 0;}
//vector#include <iostream>#include <string>#include <vector>using namespace std;int main(){    const size_t size = 10;    vector<int> v;    vector<int> v2;    for (size_t i = 0; i != size; ++i)    {        v.push_back(i);        cout << v[i] << " ";    }    cout << endl;       for (size_t i = 0; i != size; ++i)    {        v2.push_back(v[i]);        cout << v2[i] << " ";    }    return 0;}

3.33对于下列程序来说,如果不初始化scores
将会发生什么?

#include <iostream>#include <string>#include <vector>using namespace std;int main(){    unsigned scores[11];    unsigned grade;    while (cin >> grade)    {        if (grade <= 100)        {            ++scores[grade / 10];        }    }    return 0;}

不初始化scores内值为随机值,统计结果必然不正确。

0 0