zoukankan      html  css  js  c++  java
  • 循环结构-打印菱形

    要求:用户输入6,即输出上面6行下面5行的菱形;如果输入10,则输出上面10行,下面9行的菱形。

    效果如图

                int h;//表示菱形的高的一半,也就是用户输入的数
                Console.WriteLine("请输入xxx我也不知道这里怎么说");//提示用户输入一个数
                h = Convert.ToInt32(Console.ReadLine());//把用户的输入读取进来并存到h中
    
                //上半部分
                //思路:我们想输出菱形,要考虑每一行的星号前面有几个空格,每一行有几个星号
                //经过推(数)理(数)我们发现,星号最多一行的星号个数为 (2h-1) 个
                //第一行前面空格个数为h-1;第i行(i<h)空格个数为h-i
                //我们以h=6为例,星号最多的一行是第6行,*个数为11个,第6行前面是没有空格的
                //第一行前面有5个空格
    
                for (int i = 1; i <= h; i++)//第几行
                {
                    for (int j = 1; j <= h - i; j++)//输出该行的空格
                    {
                        Console.Write(" ");//输出一个空格
                    }
    
                    for (int k = 1; k <= 2 * i - 1; k++)//输出该行的* 每行星号个数为(2i-1)
                    {
                        Console.Write("*");
                    }
    
                    Console.WriteLine();//当前行输出完成,换行
                }
    
                //到这里,上半行完成
                //下面打印下半行
    
                //下半行的话就完全反过来。下半行的第1行前面有一个空格 有[2(h-1)-1]个星号
                //下半行的第m行有m个空格,[2(h-m)-1]个星号
                //下半行共有h-1行
    
                for (int m = 1; m <= h - 1; m++)//m表示下半行的行数
                {
                    for (int n = 1; n <= m; n++)//输出空格
                    {
                        Console.Write(" ");
                    }
    
                    for (int o = 1; o <= 2 * (h - m) - 1; o++)//输出*
                    {
                        Console.Write("*");
                    }
    
                    Console.WriteLine();//换行
                } 
  • 相关阅读:
    纯css3实现旋转的太极图
    webstorm9.3 安装less 编译css教程
    javascript之查找数组中最小/最大的数
    javascript基础之打印乘法表
    javascript之查找数组元素
    jvascript 顺序查找和二分查找法
    Vue基础知识之常用属性和事件修饰符(二)
    Vue源码(一)
    BFC以及margin的深入探究
    jQuery中Ajax参数详细介绍
  • 原文地址:https://www.cnblogs.com/MichaelLee2015/p/4403005.html
Copyright © 2011-2022 走看看