当前位置:编程学习 > C#/ASP.NET >>

c# 输出* 图形问题

我想要出入一个图形     
    *    
   ***
  *****
 *******
  *****
   ***
    *

我写的代码是:
  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();
        }
    }


有没有其他的方法指教一下  我是分成四个部分去做的   --------------------编程问答-------------------- 可以分为三部分
上,中,下
--------------------编程问答-------------------- 用递归尝试一下 --------------------编程问答-------------------- 菱形? --------------------编程问答--------------------

 #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;
                }
            }
        }

--------------------编程问答--------------------  //这样还简单一点
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();
        } --------------------编程问答--------------------

        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;
            }
        }
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,