📜  c++中使用for循环堆栈溢出的偶数程序 - C++(1)

📅  最后修改于: 2023-12-03 15:14:01.918000             🧑  作者: Mango

C++中使用for循环堆栈溢出的偶数程序

本程序是利用for循环,每次将计数器加2,得到偶数,并将偶数压入栈中,直到栈溢出为止。

代码
#include <iostream>
#include <stack>

int main()
{
    std::stack<int> s;  // 声明一个栈
    int evenNum = 0;

    for(int i = 0;; i += 2)
    {
        s.push(i);
        evenNum++;

        // 判断是否溢出
        if(s.size() > 10000)
        {
            std::cout << "Stack overflow!" << std::endl;
            break;
        }
    }

    std::cout << "Total even numbers: " << evenNum << std::endl;

    return 0;
}
说明
  • 首先,我们声明了一个栈 s 和一个计数变量 evenNum,用来记录生成的偶数的个数。
  • 利用 for 循环,每次将计数器 i 加 2,得到偶数,并将偶数压入栈中。
  • 每次将偶数压入栈中后,就将偶数个数 evenNum 加 1。
  • 在每次循环时,判断栈中元素的个数是否超过 10000,如果超过,则退出循环,输出 "Stack overflow!",否则继续往栈中压入偶数。
  • 循环结束后,输出生成的偶数总数 evenNum
注意

在本程序中,我们没有考虑如何使用栈中的元素,只是简单地将偶数压入栈中。实际应用中,我们需要根据实际需要选择合适的容器来存储数据,避免因数据过多导致的栈溢出等问题。