严蔚敏数据结构习题——第一章(部分)

1.6 在程序设计中,常用下列三种不同的出错处理方式:
(1) 用exit语句终止执行并报告错误;
(2) 以函数的返回值区别正确返回或错误返回;
(3) 设置一个整型变量的函数参数以区别正确返回或某种错误返回。
试讨论这三种方法各自的优缺点。

(1) exit常用于异常错误处理,他可以强行中断程序的执行,返回操作系统。
(2) 以函数的返回值判断正确与否常用于子程序的测试,便于实现程序的局部控制。
(3)用整型函数进行错误处理的有点事可以给出错误类型,便于迅速确定错误。

试编写算法,计算 i!2i 的值并存入数组a[0..arrsize-1]的第i-1个分量中(i=1,2,…,n)。假设计算机中允许的整数最大值为maxint,则当n>arrsize或对某个 k(1kn) ,使 k!2k >MAXINT时,应按出错处理。注意选择你认为较好的出错处理方法。

#include 
#include 
#include 
#define MAXINT 65535
#define ArrSize 100

using namespace std;

int main(void)
{
    int k, i;
    int a[ArrSize];
    cout << "Enter k:" << endl;
    cin >> k;
    if ( k > ArrSize - 1)
        exit(0);
    for (i = 0; i <= k; i++) {
        if (i == 0)
            a[i] = 1;
        else {
            if (2 * i*a[i-1] > MAXINT)
                exit(0);
            else a[i] = 2 * i * a[i - 1];
        }
    }

    for (i = 0; i <= k; i++) {
        if (a[i] > MAXINT)
            exit(0);
        else
            cout << a[i] <return 0;
}

你可能感兴趣的:(数据结构)