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(1≤k≤n) ,使 k!⋅2k >MAXINT时,应按出错处理。注意选择你认为较好的出错处理方法。
#include <iostream>
#include <math.h>
#include <stdlib.h>
#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] <<endl;
}
return 0;
}