设为首页 加入收藏

TOP

3.2.6 嵌套的循环(2)
2013-10-07 16:07:00 来源: 作者: 【 】 浏览:71
Tags:3.2.6 循环

3.2.6  嵌套的循环(2)

试一试:另一个嵌套的循环

嵌套循环可能使人感到迷惑,因此我们再看一个示例。该程序可以生成一个给定大小的乘法表。

  1. // Ex3_14.cpp  
  2. // Using nested loops to generate a multiplication table  
  3. #include <iostream> 
  4. #include <iomanip> 
  5. using std::cout;  
  6. using std::endl;  
  7. using std::setw;  
  8. int main()  
  9. {  
  10. const int size(12);                             // Size of table  
  11. int i(0), j(0);                                     // Loop counters  
  12. cout << endl                                        // Output table title  
  13. << size << " by " << size << " Multiplication Table" << endl << endl;  
  14. cout << endl << " |";  
  15. for(i = 1; i <= size; i++)                          // Loop to output column headings  
  16. cout << setw(3) << i << " ";  
  17. cout << endl;                                       // Newline for underlines  
  18. for(i = 0; i <= size; i++)  
  19. cout << "_____";                                // Underline each heading  
  20. for(i = 1; i <= size; i++)                          // Outer loop for rows  
  21. {  
  22. cout << endl 
  23. << setw(3) << i << " |";                        // Output row label  
  24. for(j = 1; j <= size; j++) // Inner loop for the rest of the row  
  25. cout << setw(3) << i*j << " ";                  // End of inner loop  
  26. } // End of outer loop  
  27. cout << endl;  
  28. return 0;  
  29. }  

该示例的输出如下:

  1. |   1    2    3    4    5    6     7    8    9    10   11   12  
  2. _________________________________________________________________  
  3. 1  |   1    2     3    4    5    6     7     8    9    10   11   12  
  4. 2  |   2    4     6    8   10   12   14   16   18   20   22   24  
  5. 3  |   3    6     9   12   15   18   21   24   27   30   33   36  
  6. 4  |   4    8   12   16   20   24   28   32   36   40   44   48  
  7. 5  |   5   10   15   20   25   30   35   40   45   50   55   60  
  8. 6  |   6   12   18   24   30   36   42   48   54   60   66   72  
  9. 7  |   7   14   21   28   35   42   49   56   63   70   77   84  
  10. 8  |   8   16   24   32   40   48   56   64   72   80   88   96  
  11. 9  |         9   18   27   36   45   54   63   72   81   90    99  108  
  12. 10  |   10   20   30   40   50   60   70   80   90  100  110  120  
  13. 11  |  11   22   33   44   55   66   77   88   99  110  121  132  
  14. 12  |  12   24   36   48   60   72   84   96  108  120  132  144  

示例说明

表标题是程序中第一条输出语句产生的。下一条输出语句与后面跟着的循环共同生成了列标题。每列是5个字符宽,因此标题值显示在setw(3)操作符指定的3字符宽的字段中,后面跟着两个空格。该循环前面的输出语句在包含行标题的第一列上面输出4个空格和一条竖线。然后,一串下划线字符显示在列标题的下面。

嵌套循环生成主表的内容。外部循环为每一行重复一次,因此i是行号。输出语句

  1. cout << endl 
  2. << setw(3) << i << " |";                            // Output row label  

首先转到下一行,然后在3字符宽的字段中输出行标题i的值,后面是一个空格和一条竖线。

下面的内部循环生成各行的数值:

  1. for(j = 1; j <= size; j++)                                      // Inner loop for the rest of the row  
  2. cout << setw(3) << i*j << " ";              // End of inner loop  

该循环输出i*j的值,这些值是当前行值i与依次从1变化到size的各个列值j的乘积。因此,对于外部循环的每次迭代而言,内部循环执行size次迭代。得到的乘积以与列标题相同的方式定位。当外部循环完成时,执行return语句以结束该程序。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.2.6 嵌套的循环(1) 下一篇3.5 本章主要内容

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 C 语言或者限制使 (2025-12-25 08:50:05)
·C++构造shared_ptr为 (2025-12-25 08:50:01)
·既然引用计数在做 GC (2025-12-25 08:49:59)
·Java 编程和 c 语言 (2025-12-25 08:19:48)
·. net内存管理宝典这 (2025-12-25 08:19:46)