class Program
{
static void Main(string[] args)
{
int element;
Random random = new Random();
Console.WriteLine("введите количество элементов стека?");
int n;
n = Convert.ToInt32(Console.ReadLine());
Stack stk = new Stack(n);
int head = 0;
for (int i = 0; i < n; i++)//заполнила стек
{
element = random.Next(0, 200);
if (stk.Init() != head)
{
stk.Push(element);
}
}
for (int i = 0; i < n; i++)
{
Console.Write(stk.List() + " ");
}
Console.WriteLine();
head = n;
int a;
for (int i = n; i > 0; i--)//новый стек
{
if (head % 2 == 0)
{ a = stk.Pop();
Console.Write(a - 1 + " ");
}
else
if (head % 2 != 0)
{
a = stk.Pop();
Console.Write(a+" ");
}
Console.Write(head);
head--;
}
Console.ReadLine();
}
}
class Stack
{
int[] stack;
int head = 0;
public Stack(int size)
{
stack = new int[size];
}
public void Push(int element)//добавление
{
stack[head] = element;
head++;
}
public int Pop()//извлечение
{
return (stack[head]);
// head--;
}
public int Init()//инициализация
{
return stack.Length;
}
public int List()//вывод
{
head--;
return (stack[head]);
}
}
}
Стек сам выводит, а вот новый стек, в котором каждый четный элемент уменьшен на 1 нет. Подскажите, пожалуйста, в чем ошибка. Я в программировании 0, поэтому надеюсь на понимание и помощь, заранее спасибо.