2014-09-27 2 views
0

Разработка консольного приложения C#, которое отображает следующий шаблон. Используйте для циклов (подсказка: вложенная) для генерации шаблонов. Все звездочки должны отображаться с помощью одного оператора формы Console.Write("*");, который отображает звездочки, ведущие до номера, показанного в примере. Обратите внимание на последовательность каждого номера по очереди. Вам нужно будет определить, как вычисляются числа (они являются результатом вычисления), и где это вычисление будет помещено в структуры цикла. Вы не можете перекодировать отображаемые числа в свои циклы.C# Шаблоны для петель

У меня уже есть «*», но не могу найти цифры.

Обе модели должны выглядеть примерно следующим образом:

*2 
**4 
***6 
****8 
*****10 
******12 
*******14 
********16 
*********18 
**********20 

{ 
     for (int row = 0; row < 10; row++)    
      { 
       Console.Write(" "); 

       for (int col = 0; col <= row; col++) 
       { 
        Console.Write("*"); 
        Console.Write(" "); 
       } 
       Console.WriteLine(" "); 
      } 
     Console.WriteLine(" "); 

     for (int row = 0; row < 10; row++) 
     { 
      Console.Write(" "); 

      for (int col = 10; col > row; col--) 
      { 
       Console.Write("*"); 
       Console.Write(" "); 
      } 
      Console.WriteLine(" "); 
     } 

    } 

} 

}

+1

Покажите нам свой прогресс? Ваш код – SimY4

+0

Это домашнее задание? – dotnetom

+1

@dotnetom Выглядит точно так же, как один .... но я не против, чтобы люди просили помочь с домашним заданием, если они проявили много усилий. –

ответ

3

У меня уже есть "*", но не могу понять, цифры.

У вас самая сложная часть: получение чисел для печати намного проще. Обратите внимание, что номер, который вы печатаете, равен в два раза больше звездочек перед ним. Поэтому вам нужно написать 2*n, где n - это предел в цикле, который писал звездочки (т. Е. row плюс один в вашем коде).

Вы можете сочетать печать с записью знака конца-строки: заменить

Console.WriteLine(" "); 

с

Console.WriteLine(2*(row+1)); 

, чтобы получить желаемый результат.

+0

Это еще не все. Ему нужно «Console.Write» («{0}», (строка + 1) * 2) ', потому что цикл начинается с индекса 0. В противном случае вывод будет * 0; ** 2; *** 4; **** 6; – Marco

+0

@Serv Вы правы, я пропустил это. Спасибо за исправление! – dasblinkenlight

+0

спасибо за помощь – kidkuk

2

я решил сделать свой комментарий к ответу dasblinkenlight в в ответ на своем собственном:

for(int row = 0; row < 10; row++) { 
    for(int col = 0; col <= row; col++) { 
     Console.Write("*"); 
    } 

    Console.Write("{0}{1}", (row+1)*2, Environment.NewLine); 
} 

Обратите внимание, что rownumer отображается в конце строки рассчитываются как (row+1)*2, потому что ваш цикл начинается с индексом 0. В противном случае выход был бы неисправен. За ним следует новая строка.

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