2015-09-28 3 views
-3
using System; 


namespace Shapes 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("Character: "); 
      string symbol = (Console.ReadLine()); 
      Console.WriteLine("Peak of Triangle: "); 
      int peak = Int32.Parse(Console.ReadLine()); 


      int i = 0; 
      while (i <= peak) // spaces for triangle 
      { 

       Console.WriteLine(" "); 



       int z = 1; 

       while (z <= i) // Symbols for triangle 
       { 
        Console.Write(symbol); 

        z++; 

       } 


       i++; 
      } 

      Console.ReadLine(); 
     } 
    } 
} 

Выход: должен начинаться с одного (*), а затем увеличиваться до достижения пика. Затем следует уменьшить возврат к одному из входных данных.Пытается вывести равнобедренный треугольник. Я продолжаю получать правый треугольник

Выход я получаю не уменьшая его останавливается на пике входа

+0

выход должен быть: * ** *** ** * Выход на данный момент * ** *** – ADB

+0

Когда улица ep через этот код в отладчике, где поведение во время выполнения отличается от ожидаемого? Каковы значения времени выполнения, когда это происходит? – David

+0

Ваша петля только идет от 0 до пика - и останавливается - вот что вы видите. Затем вам нужен еще один цикл, чтобы вернуться к 0. – PaulF

ответ

1

Вы должны обратить счетчик i считать обратно в 0.

Console.WriteLine("Character: "); 
string symbol = (Console.ReadLine()); 
Console.WriteLine("Peak of Triangle: "); 
int peak = Int32.Parse(Console.ReadLine()); // spaces for triangle 
int i = 0; 
int n = 1; 
while (i != -1) // do it until i is negative 
{ 
    Console.WriteLine(" "); 

    int z = 1; 

    while (z <= i) // Symbols for triangle 
    { 
     Console.Write(symbol); 
     z++; 
    } 

    i += n; // increments when n = 1. decrements when n = -1 

    if (i >= peak) // reverse counter when it reaches peak 
    { 
     n = -1; 
    } 
} 
+0

Спасибо! Комментарии действительно помогли объяснить каждый шаг. – ADB

+0

@ADB рад, что это помогло. Я редактировал код. он работает и теперь проще. (удалено 'i - = 2' и вместо этого изменено' i> peak' на 'i> = peak') –