我想要出入一个图形     
    *    
   ***
  *****
 *******
  *****
   ***
    *我写的代码是:
  for (int i = 1; i < 5; i++)
            {   //左上半部分
                for (int j = 0; j < (4 - i);j++ )
                {
                    Console.Write(" ");       //空格部分
                }
                for (int j = 1; j <= i; j++)
                {
                    Console.Write("*");
                }
                //右上半部分
                for (int j = (i-1); j >0; j--)
                {
                    Console.Write("*");
                }                Console.WriteLine(" ");
            }
            
            
            
            //下半部分
            for (int m = 1; m < 4; m++)
            {
                //左下部分
                for (int n = 1; n <= m; n++)
                {
                    Console.Write(" ");//空格部分
                }
                for(int n=(4-m);n >0;n--)
                {
                    Console .Write ("*");
                }
                //右下部分
                for (int n = (3 - m); n > 0; n--)
                {
                    Console.Write("*");
                }
                    Console.WriteLine(" ");            }
            
            Console.Read();
        }
    }
有没有其他的方法指教一下  我是分成四个部分去做的  

解决方案 »

  1.   


     #region
            /// <summary>
            /// 下三角形;
            /// </summary>
            /// <param name="param"></param>
            /// <returns></returns>
            private static void Triangle(int param)
            {
                int my = 0, param1 = param;            do
                {
                    --param1; ++my;
                    for (int i = 0; my > i; ++i)
                    {
                        Console.Write(" ");
                    }
                    for (int x = 2 * (param1 - 1) + 1; x > 0; --x)
                    {
                        Console.Write("*");
                    }
                    Console.WriteLine("");
                } while (my < param - 1);
            }
            #endregion        static void Main(string[] args)
            {
                Console.Write("请输入上三角形的高度");
                int mylength = Convert.ToInt32(Console.ReadLine());
                int myenxt = 0, myenxt1 = mylength;            do    //上三角;
                {
                    --mylength; ++myenxt;
                    for (int i = mylength; i > 0; --i)//填充 空格;
                    {
                        Console.Write(" ");
                    }
                    for (int j = 0; j < (myenxt - 1) * 2 + 1; ++j)//填充 星号;
                    {
                        Console.Write("*");
                    }
                    Console.WriteLine("");
                } 
                while (myenxt < myenxt1);
                Triangle(myenxt1);//下三角型;            bool enxt = true;
                while (enxt)
                {
                    ConsoleKeyInfo mychar = Console.ReadKey();
                    if (mychar.KeyChar >= 0)
                    {
                        enxt = false;
                    }
                }
            }
      

  2.   

     //这样还简单一点
    public static void star1(int n) {
                string s = " ";
                for (int i = 1; i <= n; i++)
                {
                    Console.Write(" ");
                   for(int j=1;j<=2*i-1;j++){
                    
                    Console.Write("*");}
                    Console.WriteLine();
                } //上部三角
                
                for(int i=1;i<= 2*n+1;i++){
                    Console.Write("*");
                }
                Console.WriteLine();//中部            for(int i=n; i>=1;i--){
                    Console.Write(" ");
                    for (int j = 1; j <= 2*i-1; j++) {
                        Console.Write("*");
                    }
                    Console.WriteLine();  
        }//下部倒三角
            }
                        static void Main(string[] args)
            {
                int n = 3;
                star1(n);
                Console.ReadKey();
            }
      

  3.   


            private void Print(int maxLength)
            {
                int pad = maxLength / 2;
                string star = "*";
                while (!string.IsNullOrEmpty(star))
                {
                    int absPad = Math.Abs(pad);
                    Console.WriteLine(star.PadLeft(maxLength-absPad, ' ').PadRight(maxLength, ' '));
                    star = --pad >= 0 ? string.Format("*{0}*", star) :
                        star.Length > 1 ? star.Substring(1, star.Length - 2) : string.Empty;
                }
            }