我觉得有必要教大家画菱形了

在我开始学C语言和C++的时候,学到循环必然会有题目是画三角形画菱形画尼玛各种图形。

~ ~ ~

我就开始查,第一行直到第几个是空白,第二行怎么着怎么着,在小本子上用铅笔画来画去。我内心是崩溃的。。。

过了好久我们考试了,是的就是画菱形。

我在学校机房的小霸王上画了好半天,手脚并用,手舞足蹈。

学霸们一个接着一个的提交了代码,我作为一个各种不服的学渣,内心是:

“。。。。。。”

“学霸还是熟练,我赵日天服了”

所以我就在思考为什么,尼玛为什么?我最后想通了,书本上教的根本就不是一个正确的思考问题的姿势。

正确的姿势是这样的,你就在你要画的图形上构建一个直角坐标系。然后求出图形的边的函数表达式,然后用高中学的线性规划的知识来画图,就完了。

落实到代码上是这样的(我表示并不会写高贵的C语言,只能写Java了):


    public class DrawTest {

        //y=x+15 y=x-15 y=-x+15 y=-x-15

        public static void main(String[] args) {

            for (int y = -15; y <= 15; y += 1) {
                for (int x = -15; x <= 15; x += 1) {
                    if (y < x + 15 && y < -x + 15
                            && y > x - 15 && y > -x - 15) {
                        System.out.print("*");
                    } else {
                        System.out.print(" ");
                    }
                }
                System.out.println();
            }

        }
    }

所以你可以画三角形,梯形,菱形,胖菱形,瘦菱形,椭圆,甚至笛卡尔心形线,以及一些并不知道是什么鬼的图形。。。

可以用这个来学循环,但别形成思维定势,正确的思考问题的姿势是上边那样的。

循环真的流程控制里面简单的不能再简单的东西,不要想的太复杂。

想看复杂的流程控制方式可以去刚一波continuation。。。

装逼结束,收工。

你可能感兴趣的:(我觉得有必要教大家画菱形了)