• 5.循环和计数


    在上里一个例子中我们输出了:

         

    这种方法有一个主要的缺点:输出的每一行都有一个与之对应的变量。因此,即使对输出格式进行简单的更改,例如删除问候语和框架之间的空格,也需要重写程序。我们希望产生更灵活的输出形式,而不必将每行存储在局部变量中。

    我们将通过单独输出每个字符来解决这个问题。

    思路:

    把输出当成一个二维矩阵。当第2行2列时候,输出问候语句。其他时候,如果是矩阵边缘,输出"*",其他地方输出" "。

    string::size_type 仅仅是一个unsigned类型,本例中就是用来计数,统计列数。

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    
    int main()
    {
        
        int rows;
        string::size_type cols;
    
        int pad = 1;
        string name;
        cout << "What's your name: ";
        cin >> name;
        string greeting;
        greeting = "Hello, " + name + "!";
        rows = pad*2+3;
        cols = greeting.size()+pad*2+2;
        for(int i=0; i<rows; i++)
        {
            string::size_type c = 0;
            while(c != cols)
            {
                if(i == 2 && c == 2)
                {
                    cout << greeting;
                    c += greeting.size();
                }
                else
                {
                    if(i == 0 || i == 4 || c == 0 || c == cols - 1)
                        cout << "*";
                    else
                        cout << " ";
                    c++;
                }
                
            }
            cout << endl;
        }
          
    
        system("pause");
        return 0;
    }

    课后习题:

    1)用"*"输出一个三角形。

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    
    int main()
    {
        
        int rows = 5;
        int cols = 9;
        int mid = cols / 2;
        int count = 0;
        for(int i = 0; i < 5; i++)
        {
            int c = 0;
            while(c != cols)
            {
                if(c == mid - count || c == mid + count || i == 4)
                    cout << "*";
                else
                    cout << " ";
                c++;
            }
            count++;
            cout << endl;
        }
          
    
        system("pause");
        return 0;
    }
  • 相关阅读:
    常用性能测试工具和命令汇总
    delphi try except语句 和 try finally语句用法以及区别
    delphi中 ExecSQL 与 open
    Javascript闭包
    遍历一个List的几种方法
    IDEA导入项目jar包红线、依赖问题....
    HashMap、Hashtable、ConcurrentHashMap的原理与区别
    记一次CPU飙升BUG
    创建单链表
    【剑指offer】题目二
  • 原文地址:https://www.cnblogs.com/billxyd/p/7028455.html
Copyright © 2020-2023  润新知