c++ primer 3.6节练习答案

 

练习3.43

版本1

 1 int main()
 2 {
 3     using int_array = int[4];
 4     int cnt = 0;
 5     int ia[3][4];
 6     for (int_array &p : ia)
 7         for (int &q : p)
 8         {
 9             q = cnt;
10             cnt++;
11         }
12     
13     c16     system("pause");
17     return 0;
18 }

版本2

 1 int main()
 2 {
 3     using int_array = int[4];
 4     int cnt = 0;
 5     int ia[3][4];
 6     for (int_array &p : ia)
 7         for (int &q : p)
 8         {
 9             q = cnt;
10             cnt++;
11         }
12     
13     for (int_array *p = ia;p != &ia[2];p++)
14         for (int *q = *p;q != p[2];q++)// 这个地方为什么是p[2],不是3,试过3会输出别的数字
15             cout << *q << " ";
16     system("pause");
17     return 0;
18 }

版本2

 1 int main()
 2 {
 3     int ia[3][4] = {
 4         {0,1,2,3},
 5         {4,5,6,7},
 6         {8,9,10,11}
 7     };
 8     for (auto i = 0;i != 3;i++)
 9         for (auto j = 0; j != 4;j++)
10             cout << ia[i][j] << " ";
11     system("pause");
12     return 0;
13 }

版本3

 1 int main()
 2 {
 3     using int_array = int[4];
 4     int cnt = 0;
 5     int ia[3][4];
 6     for (int_array &p : ia)
 7         for (int &q : p)
 8         {
 9             q = cnt;
10             cnt++;
11         }
12     
13     for (int_array *p = ia; p != ia + 3; p++)
14         for (int *q = *p; q != *p + 4; q++)
15             cout << *q << " ";
16     system("pause");
17     return 0;
18 

练习3.44

在上面已经替换了

练习3.45

选择一种版本替换

 1 int main()
 2 {
 3     int cnt = 0;
 4     int ia[3][4];
 5     for (auto &p : ia)
 6         for (auto &q : p)
 7         {
 8             q = cnt;
 9             cnt++;
10         }
11     
12     for (auto &p : ia)
13         for (auto &q : p)
14             cout << q << " ";
15     system("pause");
16     return 0;
17 }

 

posted @ 2017-07-27 20:53  五月份小姐  阅读(695)  评论(0)    收藏  举报