正在加载图片...
第1章绪论 (3)程序执行结束后的 count值为3n+3 当n为偶数时, count=3*(n/2)+3*(n/2)+3=3*n+3 当n为奇数时, count=3*(n+1)/2)+3*((n-1)/2)+3=3*n+3 (4)使用执行频度的方法计算程序的执行步数,画出程序步数统计表 执行频度程 I void d( Array Element x[l, intn)( L(n+1)2」 23456789012 x[+=2 10111 L(n+1)2」L(a+1)2」 L(n+1)2」L(a+1)2」 i while(i<=n ) L(n+12」La+1)2」 whle(i<=(n/2)){ Ln2+1」Ln2+1」 1++ (n≠0) 1-10设有3个值大小不同的整数a、b和c,试求 (1)其中值最大的整数 (2)其中值最小的整数 (3)其中位于中间值的整数。 【解答】 (1)求3个整数中的最大整数的函数 【方案1】 int max( int a, int b, int c)t int m a: if(b>m)m=b 【方案2】(此程序可修改循环终止变量扩大到n个整数) int max( int a, int b, intc)& int m=0: 开始时假定da最大 for(inti=1;i<3;计++) ∥与其他整数逐个比较 if( data[ >data m)m=i; m记录新的最大者 return data m]:第 1 章 绪论 7 } count += 3; } (3) 程序执行结束后的 count 值为 3n + 3。 当 n 为偶数时,count = 3 * ( n / 2 ) + 3 * ( n / 2 ) + 3 = 3 * n + 3 当 n 为奇数时,count = 3 * ( ( n + 1 ) / 2 ) + 3 * ( ( n – 1 ) / 2 ) + 3 = 3 * n + 3 (4) 使用执行频度的方法计算程序的执行步数,画出程序步数统计表: 行 号 程 序 语 句 一次执行步数 执行频度 程序步数 1 2 3 4 5 6 7 8 9 10 11 12 void d ( ArrayElement x [ ], int n ) { int i = 1; do { x[i] += 2; i += 2; } while ( i <= n ); i = 1; while ( i <= ( n / 2 ) ) { x[i] += x[i+1]; i ++; } } 0 1 0 1 1 1 1 1 1 1 0 0 1 1 (n+1)/2 (n+1)/2 (n+1)/2 (n+1)/2 1 n/2+1 n/2 n/2 n/2 1 0 1 0 (n+1)/2 (n+1)/2 (n+1)/2 1 n/2+1 n/2 n/2 0 0 ( n  0 ) 3n + 3 1-10 设有 3 个值大小不同的整数 a、b 和 c,试求 (1) 其中值最大的整数; (2) 其中值最小的整数; (3) 其中位于中间值的整数。 【解答】 (1) 求 3 个整数中的最大整数的函数 【方案 1】 int max ( int a, int b, int c ) { int m = a; if ( b > m ) m = b; if ( c > m ) m = c; return m; } 【方案 2】(此程序可修改循环终止变量扩大到 n 个整数) int max ( int a, int b, int c ) { int data[3] = { a, b, c }; int m = 0; //开始时假定 data[0]最大 for ( int i = 1; i < 3; i++ ) //与其他整数逐个比较 if ( data[i] > data[m] ) m = i; //m 记录新的最大者 return data[m]; }
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有