2015-09-29 4 views
5

jestem nowicjuszem w C# i bo zażądać mi pomóc wdrożyć to:C# choinki

  * 
     * 
     *** 
     * 
     *** 
     ***** 
     * 
     *** 
     ***** 
    ******* 
     * 
     *** 
     ***** 
    ******* 
    *********

miałem tylko ten kod:

class Program 
{ 
    static void Main(string[] args) 
    { 
     AnotherTriangle ob = new AnotherTriangle(); 
     ob.CreateTriangle(); 

     Console.ReadLine(); 
    } 
} 
class AnotherTriangle 
{ 
    int n; 
    string result = "*"; 
    public void CreateTriangle() 
    { 
    flag1: 
     Console.Write("Please enter number of triangles of your tree: "); 
     n = int.Parse(Console.ReadLine()); 
     Console.WriteLine(); 
     if (n <= 0) 
     { 
      Console.WriteLine("Wrong data type\n"); goto flag1; 
     } 
     string s = "*".PadLeft(n); 
     for (int i = 0; i < n; i++) 
     { 
      Console.WriteLine(s); 
      s = s.Substring(1) + "**"; 
      for (int j = 0; j < n; j++) 
      { 
       Console.WriteLine(s); 
      } 
     } 
    } 
} 

Na teraz mam tylko "wieża" , a nie trójkąt równoboczny. Proszę pomóż.

+2

proszę, kiedy się go pracy, przyglądać się przy użyciu [ 'TryParse'] (https://msdn.microsoft.com/en-us/library/f02979c7%28v=vs. 110% 29.aspx) i pytanie, dlaczego używasz 'goto' – Sayse

+1

' goto'? Naprawdę? Doceniam, że jesteś nowicjuszem, ale proszę, proszę, nigdy więcej nie używaj 'goto'. Spowoduje to przejście ścieżki "złego programisty" i może być trudną drogą do ucieczki. –

+1

Przeczytaj o 'goto': [goto-is-this-bad] (http://stackoverflow.com/questions/11906056/goto-is-this-bad) – Dbuggy

Odpowiedz

9
Console.WriteLine("Please enter the number of triangles in your tree: "); 
int n = int.Parse(Console.ReadLine()); 

for (int i = 1; i <= n; i++) 
{ 
    for (int j = 0; j < i; j++) 
    { 
     string branch = new String('*', j); 
     Console.WriteLine(branch.PadLeft(n + 3) + "*" + branch); 
    } 
} 

A working example.

+3

fascynująca odpowiedź w 12 minut –