2015-01-13 2 views
-7
class Triangle 
{ 
    static void Main(string[] args) 
    { 
     int i,j,k,odd=1,size,s=0; 
     Console.Write("Enter the Size:"); 
     size = Convert.ToInt32(Console.ReadLine()); 
     int nofSpaces=size-1; 
     for (i = 1; i <= size; i++) 
     { 
      for (k = 1; k <= nofSpaces; k++) 
      { 
       Console.Write(" "); 
      } 
      for (j = 1; j <= odd; j++) 
      { 
       if (i >= j) 
       { 
        s = s + 1; 
       } 
       else 
       { 
        s = s - 1; 
       } 

       Console.Write(s); 
      } 
      Console.Write("\n"); 
      odd = odd + 2; 
      nofSpaces = nofSpaces - 1; 
     } 
     Console.ReadKey(); 
    } 
} 

Это код, и это дает следующий результат:C# программа для печати чисел треугольник?

1 
    232 
    34543 
4567654 
56789875 

Но мне нужен результат, как этот:

1 
    121 
    12321 
1234321 
--------- 

Любая помощь будет принята с благодарностью. Спасибо.

+0

Отладка - ваш друг – ChrisC73

+0

Установите точки останова, выполнив один шаг с помощью кода, сравните ожидаемые значения с фактическими значениями. Подсказка: обратите внимание на s – DrKoch

ответ

2

Добавить

s = 0; 

на правой линии в коде.

+3

нахождение 'right line' оставлено как упражнение;) – DrKoch

+0

Что вы говорите, я не могу понять, что такое« правая линия »> –

+0

В вашем коде выражение 's = 0;' пропал, отсутствует. Я намеревался, чтобы вы узнали, где именно вы должны добавить эту линию. Отличный способ узнать что-то ценное. – DrKoch

1

Вы должны попробовать это ... Это простой пример с для петель

class Triangle 
{ 
    static void Main(string[] args) 
    { 
       int size; 
       Console.Write("Enter the Size:"); 
       size = Convert.ToInt32(Console.ReadLine()); 
       for (int i = 0; i < size; i++) 
       { 
        for (int j = size ; j > i; j--) 
        { 
         Console.Write(" "); 
        } 

        for (int x = 1; x <= i; x++) 
        { 
         Console.Write(x); 
        } 
        for (int j = i-1; j > 0; j--) 
        { 
         Console.Write(j); 
        } 
        Console.WriteLine(); 
       } 
        Console.ReadKey(); 
     } 
} 
0

Пожалуйста, напишите, как показано ниже

static void Main(string[] args) 
     { 
      int i, j, k, odd = 1, size, s = 0; 
      Console.Write("Enter the Size:"); 
      size = Convert.ToInt32(Console.ReadLine()); 
      int nofSpaces = size - 1; 
      for (i = 1; i <= size; i++) 
      { 
       for (k = 1; k <= nofSpaces; k++) 
       { 
        Console.Write(" "); 
       } 
       s = 0; 
       for (j = 1; j <= odd; j++) 
       { 
        if (i >= j) 
        { 
         s = s + 1; 
        } 
        else 
        { 
         s = s - 1; 
        } 

        Console.Write(s); 
       } 
       Console.Write("\n"); 
       odd = odd + 2; 
       nofSpaces = nofSpaces - 1; 
      } 
      Console.ReadKey(); 
     } 
2

class Triangle 
 
    { 
 
     static void Main(string[] args) 
 
     { 
 
      int i,j,k,odd=1,size; 
 
      Console.Write("Enter the Size:"); 
 
      size = Convert.ToInt32(Console.ReadLine()); 
 
      int nofSpaces=size-1; 
 
      int s = 0; 
 
      for (i = 1; i <= size; i++) 
 
      { 
 
       int g = 0; 
 
       for (k = 1; k <= nofSpaces; k++) 
 
       { 
 
        Console.Write(" "); 
 
       } 
 
       for (j = 1; j <= odd; j++) 
 
       { 
 
        
 
        if (i >= j) 
 
        { 
 

 

 
         Console.Write(j); 
 
         g = j; 
 
        } 
 

 
        else 
 
        { 
 

 
         //for (int n = j-1; n >= i; n--) 
 
         //{ 
 
         // Console.Write(n - 1); 
 
         //} 
 
         Console.Write(--g); 
 
        } 
 
        
 
       } 
 
       Console.Write("\n"); 
 
       odd = odd + 2; 
 
       nofSpaces = nofSpaces - 1; 
 
      } 
 
      Console.ReadKey(); 
 
     } 
 
    } 
 
}

Спасибо Все ! ... Вышеуказанный код работает ....

Смежные вопросы