正在加载图片...
第1章绪论 般地, n k时i=1+ <100+n 求出满足此不等式的k值,即为语句i=i+j的程序步数 1-8试编写一个函数计算n*2的值,结果存放于数组 A[]的第n个数组元素中,0≤ n≤ array Size。若设计算机中允许的整数的最大值为 maxInt,则当n> array Size或者对于某 一个k(0≤k≤n),使得k!*2> maxInt时,应按出错处理。可有如下三种不同的出错处理方 (1)用cerr<及exit(1)语句来终止执行并报告错误 (2)用返回整数函数值0,1来实现算法,以区别是正常返回还是错误返回; (3)在函数的参数表设置一个引用型的整型变量来区别是正常返回还是某种错误返回 试讨论这三种方法各自的优缺点,并以你认为是最好的方式实现它 【解答】 #define maxInt ox7ffffffi t calc( int T[ int n )i int i, value= 1: t edge maxInt /n/2 if( value )return 0; TIn]=value cout <<"A<<n<<""<<Tn]<< endl return 1: int aarray]: if (Calc(A,1)) cout << "failed at"<<i<<""<<endl第 1 章 绪论 5 一般地, 求出满足此不等式的 k 值,即为语句 i = i + j 的程序步数。 1-8 试编写一个函数计算 n!*2n 的值,结果存放于数组 A[arraySize]的第 n 个数组元素中,0  n  arraySize。若设计算机中允许的整数的最大值为 maxInt,则当 n > arraySize 或者对于某 一个 k (0  k  n),使得 k!*2k > maxInt 时,应按出错处理。可有如下三种不同的出错处理方 式: (1) 用 cerr<<及 exit (1)语句来终止执行并报告错误; (2) 用返回整数函数值 0, 1 来实现算法,以区别是正常返回还是错误返回; (3) 在函数的参数表设置一个引用型的整型变量来区别是正常返回还是某种错误返回。 试讨论这三种方法各自的优缺点,并以你认为是最好的方式实现它。 【解答】 #include "iostream.h" #define arraySize 100 #define MaxInt 0x7fffffff int calc ( int T[ ], int n ) { int i, value = 1; if ( n != 0 ) { int edge = MaxInt / n / 2; for ( i = 1; i < n; i++ ) { value *= i*2; if ( value > edge ) return 0; } value *= n * 2; } T[n] = value; cout << "A[" << n << "]=" << T[n] << endl; return 1; } void main ( ) { int A[arraySize]; int i; for ( i = 0; i < arraySize; i++ ) if ( !calc ( A, i ) ) { cout << "failed at " << i << " ." << endl; break; } } 100 n 2 n(n 1) i k 时, i 1 k   +      + = = +
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有