异常与输入输出

求求啊,各位大佬们帮忙解一下啊!!!!

下面程序定义栈类模板StackTemplate,创建栈对象存储斐波那契数列的前10项数值,并以后进先出的方式取出元素并输出,输出结果为:55 34 21 13 8 5 3 2 1 1。其中void push(const T& i)函数为添加元素、T pop()函数为取出栈顶元素,int fibonacci(int n)函数为计算斐波那契数列的第n项值。在计算斐波那契数列值、添加元素和取出元素的过程中要进行上溢(OverFlow)或者下溢(UnderFlow)的异常处理。请补充空白处的代码(每空1分)。

#include
using namespace std;

enum ERROR{UnderFlow,OverFlow};

template
class StackTemplate {
enum { ssize = 100 };
T stack[ssize];
int top;
public:
StackTemplate() : top(0) {}
void push(const T& i) {
if (top >= ssize)
(1分);
stack[top++] = i; }
T pop() {
if ((1分))
throw UnderFlow;
return (1分); }
int size() const{
return top; } };
int fibonacci(int n);
int main() {
(1分) {
(1分) is;
for(int i = 0; i < 10; i++)
is.push(fibonacci(i));
for(int k = 0; k < 10; k++)
cout << is.pop() << “\t”; }
catch( ERROR e ) {
switch((1分) ) {
case OverFlow: exit;
case UnderFlow: exit;
}
}
catch(…) {
} return 0; }

int fibonacci(int n) {
(1分)
int sz = 100;
int i;
static int f[sz];
if (n >= sz)
(1分);
f[0] = f[1] = 1;
for(i = 0; i < sz; i++)
if(f[i] == 0) break;
while(i <= n) {
(1分) = f[i-1] + f[i-2];
i++;
}
return (1分); }

你可能感兴趣的:(笔记)