2010-06-06 66 views
0

我有这种形状,我想将它输出到ConoleApplication Windows。在ConsoleApplication中输出自定义形状需要帮助 - C#

alt text http://i50.tinypic.com/25a4v4p.png

我有这样的代码,但因为我需要它不工作:提前

int i,j; 

for(i=0;i<5;i++) 

{ 

for(j=5-i;j>0;j--) 

Console.WriteLine(" "); 

for(j=0;j<=2*i;j++) 

Console.WriteLine("*"); 

Console.WriteLine("\n"); 

} 

感谢。

编辑:我很抱歉

+1

你确定你是在C#编程?它对我来说更像C。 '它不起作用,因为我需要'它以什么方式不起作用?它有什么作用?你会得到什么错误?你为什么需要这样做?它是功课吗? – 2010-06-06 20:43:35

+0

对不起我的错误,我在C#和C上都试过,对不起 – Saleh 2010-06-06 20:48:47

+1

您已经编辑过使用'Console.WriteLine';你的意思是'Console.Write'? – 2010-06-06 20:51:38

回答

2

殊不知,一切使用LINQ时只是工作™ ...所以,你有没有试着用它做LINQ?

int n = 6; 

var result = string.Join("\r\n", from i in Enumerable.Range(1, n) 
           where i != 2 
           let stars = Enumerable.Repeat('*', i) 
           let indent = new string(' ', n - i) 
           select indent + string.Join(" ", stars)); 

Console.WriteLine(result); 
 
    * 
    * * * 
    * * * * 
* * * * * 
* * * * * * 
1

喜欢的东西:

  for (j = 0; j <= 2 * i; j += 2) 
      { 
       printf("*"); 
       printf(" "); 
       // or Console.Write("* ") if we are talking C# 
      } 

其中写道星号之间的空间(加上备用一个,你可能会删除它,如果它是很重要的)。

+0

为什么不用'printf(“*”)'一次..? – Betamoo 2010-06-06 22:06:40

+0

@Betamoo - 简单;我很少(如果曾经)使用C,并且我不能100%确定它会起作用,但问题本身显示了所示版本的用法。 – 2010-06-06 22:34:43

0

您刚刚使用WriteLine代替Write

下面是正确的代码:

int i, j; 

    for (i = 0; i < 5; i++) 
    { 

     for (j = 5 - i; j > 0; j--) 
      Console.Write(" "); 

     for (j = 0; j <= 2 * i; j++) 
      Console.Write("*"); 

     Console.WriteLine(); 

    } 
+0

这不就是星星之间没有空间吗? – dtb 2010-06-06 21:31:07

+0

我认为这不是OP想要做的...如果是这样,他会尝试在他的代码中打印一个空格... – Betamoo 2010-06-06 22:02:02

+0

只是试图找出他的代码有什么问题......没有重新发明一个新的一!! – Betamoo 2010-06-06 22:04:10