c++:使用*号打印三角形

记得在初学C & Java的时候,我有做过这种练习。不过印象也不是很深刻了,只是还有一点印象。大致记得就是按照老师讲的步骤去一步一步完成就好了。具体的实现思路是一点不记得了。

  • 今天在看C++看到这个练习,感觉好熟悉。心想这玩意太小儿科了。我可以使用Java花式打印出各种奇怪的图形。(吹牛而已~)
  • 但是,没有想到的是,C++如同C也是没有字符串的概念的。于是就超级蛋疼。更不同于python。相对来说,python实现起来会方便很多。
  • 好吧,先看一下题目可代码吧:
#include 

/*
2.1  使用循环结构打印下述图形,打印行数n由用户输入。图中每行事实上包括两部分,中间间隔空格字符数m也由用户输入。

    *    *********
   ***    *******
  *****    *****
 *******    ***
*********    *

 */
int main() {
    int n = 5;
    int space = 6;
    std::cout << "n:";
    std::cin >> n;
    std::cout << "space:";
    std::cin >> space;
    std::cout << std::endl;
    // y = 2x-1;
    // left = n-i;
    for (int i = 1; i <= n; ++i) {
        // left
        for (int k = 0; k < n - i; ++k) {
            std::cout << " ";
        }
        for (int j = 0; j < 2 * i - 1; ++j) {
            std::cout << "*";
        }
        // space
        for (int l = 0; l < space; ++l) {
            std::cout << " ";
        }

        for (int m = 0; m < 2 * (n - i) + 1; ++m) {
            std::cout << "*";
        }
        std::cout << std::endl;
    }
    return 0;
}
/*
n:8
space:4

    *      *********
   ***      *******
  *****      *****
 *******      ***
*********      *

Process finished with exit code 0

 */

看到了吧,这个打印三角形,真的不是简单的遍历一下,然后无脑输出*就可以了。还要去计算左边空格的个数,左边*的个数,右边*的个数。

最后,这个小练习虽然连入门都算不上。但是我依然很高兴。因为是自己认真思考了,然后完成了这个小练习。yeah✌️

你可能感兴趣的:(大猫学C/C++,computer)