You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用for循环弹出C#栈中元素直至仅剩一个?

如何用for循环弹出栈元素直至仅剩一个?

你已经完成了数组元素入栈的操作,要实现用for循环弹出元素直至栈内仅剩一个,核心是先确定需要弹出的元素数量,再执行固定次数的Pop操作。以下是修正并补充后的完整代码:

int[] numbers = new int[] {1, 2, 3, 4, 5, 6};
Stack<int> myStack = new Stack<int>();

// 修正原代码的大小写问题:mystack → myStack(C#区分大小写)
for (int i = 0; i < numbers.Length; i++)
{
    myStack.Push(numbers[i]);
}

Console.WriteLine("初始栈内元素(遍历顺序):");
foreach(int item in myStack)
{
    Console.Write(item + ", ");
}
Console.WriteLine();

// 计算需要弹出的元素数量:总元素数-1,确保最后剩1个
int elementsToPop = myStack.Count - 1;
for (int i = 0; i < elementsToPop; i++)
{
    int poppedValue = myStack.Pop();
    Console.WriteLine("弹出的元素是: {0}", poppedValue);
}

// 验证栈内剩余元素
Console.WriteLine("栈内剩余的最后一个元素是: {0}", myStack.Peek());

关键说明:

  • 先通过myStack.Count - 1确定需要弹出的次数:初始栈有6个元素,要剩1个,需弹出5次。
  • 把需要弹出的次数存入变量elementsToPop,避免循环中因Pop()导致栈Count变化,影响循环条件判断。
  • 每次Pop()会直接移除并返回栈顶元素,执行完循环后栈内仅剩余1个元素。

内容的提问来源于stack exchange,提问作者jamiegale21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:10:23