#c#
Вопрос:
Я новичок в кодировании, и я сталкиваюсь с проблемой, пытаясь решить эту проблему.
Я попытался выполнить метод, в котором он принимает 1 значение, но я не могу понять, как принимать 2 значения. Это решение, которое я устал от 1 значения
int y = input;
while (input > 0)
{
for (int z = 1; z <= input; z)
{
Console.Write("-");
}
Console.WriteLine();
for (int i = 1; i <= input - 1; i)
{
for (int z = 1; z <= y; z)
{
if (z != y)
{
Console.Write(" ");
}
else
{
Console.WriteLine("|");
}
}
}
for (int j = 1; j < y; j )
{
Console.Write(" ");
}
input = input - 2;
y = y input - 1;
}
Комментарии:
1. Пожалуйста, старайтесь избегать использования изображений, на которых можно использовать текст, в случае, если ссылка когда-либо будет нарушена. Кроме того, вы не предоставляете код, в котором запрашиваете ввод.
2. Ваш код кажется правильным. В чем именно ваша проблема? Что вы имеете в виду , но я не могу понять, как принять 2 значения ?
3. Вы имеете в виду 2 входа, когда говорите 2 значения ? Если это так, я думаю, вам просто нужно вставить этот код в каждый цикл. Для каждого ввода вы запускаете этот код ?
Ответ №1:
Вы можете реализовать что-то вроде этого:
int spaces = 0; // spaces we need to add before the line
bool horizontal = true; // if we should draw horizontal line
// we should draw lines of size input, input - 1, ... 2, 1
// while alternating horizontal and vertical lines
for (int size = input; size >= 1; --size, horizontal = !horizontal) {
if (horizontal) {
Console.WriteLine(new string(' ', spaces) new string('-', size));
spaces = size - 1;
}
else
for (int i = 0; i < size; i)
Console.WriteLine(new string(' ', spaces) "|");
}
Комментарии:
1. Хорошо и относительно легко читается. Если по какой-то причине кому-то не нравится иметь и
--size
то, иhorizontal = !horizontal
другое в оператореfor
«итератор», вы можете удалитьint horizontal = true
из перед циклом , а затем просто внутри (внешнего)for
цикла вычислитьhorizontal
как что-то вродеbool horizontal = size % 2 == input % 2;
илиbool horizontal = (input - size) % 2 == 0;
, в зависимости от предпочтений. (Конечно, вы также можете попытаться вычислитьspaces
с нуля на каждой итерации, но это явно усложнит код!)