我是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();
}
}
}
答案 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()
之间)是一个非常基本的主题,而且它的文档非常丰富。