控制台仅以垂直线显示输出

时间:2016-12-18 11:47:32

标签: console

我是C#初学者我试图编译这段代码,但输出只是垂直*行。我认为这只是一个控制台问题。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
    class Program
    {
        static void DrawPyramid(int n)
        {
            for(int i =1;i<=n;i++)
            {
                for(int j=i;j<=n;j++)
                {
                    Console.WriteLine("   ");
                }
                for(int k=1;k<=2*i-1;k++)
                {
                    Console.WriteLine("*"+" ");
                }
                Console.WriteLine();
            }
        }
        static void Main(string[]args)
        {
            DrawPyramid(5);
            Console.ReadLine();
        }    
    }
}

1 个答案:

答案 0 :(得分:0)

在你的内部循环中,你正在使用private static async Task SetSetting<T>(Expression<Func<Settings, T>> property, T newValue) { var fieldInfo = (property.Body as MemberExpression).Member as FieldInfo; fieldInfo.SetValue(_settings, newValue); } ,它将始终打印一条线。所以,在这个循环的每次迭代中:

Console.WriteLine()

你要打印一个for(int k=1;k<=2*i-1;k++) { Console.WriteLine("*"+" "); } ,一个空格和一个新行。在内部循环中,您应该使用*

以下是'固定'Console.Write()方法:

DrawPyramid()

话虽如此,我并非100%确定您的问题适合StackOverflow,因为这种区别(static void DrawPyramid(int n) { for(int i = 1; i <= n ; i++) { for(int j = i; j <= n; j++) { Console.Write(" "); } for(int k = 1; k <= 2 * i - 1; k++) { Console.Write("*"); } Console.WriteLine(); } } Console.Write()之间)是一个非常基本的主题,而且它的文档非常丰富。