2010-06-06 70 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