正在加载图片...
printf(%f", y) float f(float x, int y) 答:存在编译错。因为只能用常量表达式初始化一个静态变量,而函数调用不是一个常 量表达式。 8.11编写一个函数,对给定的整数 value,函数返回该值中值为1的位的个数 算法分析:根据整数在机内的表示形式,可以采用逐位右移的方法来统计它含“1”的 个数。下面是它的一种比较简洁的实现方案: int count bits(unsigned value) int ones if(value &1)!=0) ones += 1 /*如果最低位为1,计数器的值加1*/ return ones 8.12写一个函数,对有n个元素的 float型指针数组,要求函数返回一个指针,指向 那n个 float型数中最大数。它的函数原型为: float *NumMax(float *p[, int n 算法分析:设置一个指针pMax和一个指针数组p[],pMax用于指向那个最大的数。算 法思想是:pMax初始化为指向p[0]所指向的对象,而p[0]指向第一个 float数,通过for 循环,使p[i]所指对象与pMax所指对象相比较,并将pMax更新为指向其中的较大者。这 样当循环终止时,pMax必指向那个最大的数。下面是它的一种实现方案: float* max(float* pl, int n float* pMax =p[0] int l for(i =1:i<n:i++ if(*p[i] >*pMax) pMax pli] return pMax 8.13仿照例8.6编程:魔术师的猜牌术。魔术师手拿13张迭在一起的黑桃牌,牌面朝 下。对观众说:我不看牌,只数数就可以猜到每张牌是什么。接着,魔术师将最上面的那张 牌数为1,把它翻过来正好是黑桃A,将黑桃A放在桌子上,然后按顺序从上到下数手上的 余牌,第二次数1、2,将第一张牌放在这迭牌的下面,将第二张牌翻过来,正好是黑桃2, 也将它放在桌子上,第三次数1、2、3,将前面两张依次放在这迭牌的下面,再翻第三张牌 正好是黑桃3。这样依次进行将13张牌全翻出来,准确无误。问魔术师手中的牌原始顺序 是怎样安排的? 算法分析:本题与例8.6的求解思路类似,请参考教材,这里不再赘述。所不同的是 这里的空盒数每次要递增1。下面所给程序完全仿照例8.6。 #include <stdio. h2 printf("%f",y); } float f(float x,int y) { return x+y; } 答:存在编译错。因为只能用常量表达式初始化一个静态变量,而函数调用不是一个常 量表达式。 8.11 编写一个函数,对给定的整数 value,函数返回该值中值为 1 的位的个数。 算法分析:根据整数在机内的表示形式,可以采用逐位右移的方法来统计它含“1”的 个数。下面是它的一种比较简洁的实现方案: int count_bits(unsigned value) { int ones; for(ones = 0; value != 0; value >>= 1) if((value &1) != 0) ones += 1; /* 如果最低位为 1,计数器的值加 1 */ return ones; } 8.12 写一个函数,对有 n 个元素的 float 型指针数组,要求函数返回一个指针,指向 那 n 个 float 型数中最大数。它的函数原型为: float *NumMax(float *p[], int n); 算法分析:设置一个指针 pMax 和一个指针数组 p[],pMax 用于指向那个最大的数。算 法思想是:pMax 初始化为指向 p[0]所指向的对象,而 p[0]指向第一个 float 数,通过 for 循环,使 p[i]所指对象与 pMax 所指对象相比较,并将 pMax 更新为指向其中的较大者。这 样当循环终止时,pMax 必指向那个最大的数。下面是它的一种实现方案: float* max(float* p[], int n) { float* pMax = p[0]; int i; for(i = 1; i < n; i++) if(*p[i] > *pMax) pMax = p[i]; return pMax; } 8.13 仿照例 8.6 编程:魔术师的猜牌术。魔术师手拿 13 张迭在一起的黑桃牌,牌面朝 下。对观众说:我不看牌,只数数就可以猜到每张牌是什么。接着,魔术师将最上面的那张 牌数为 1,把它翻过来正好是黑桃 A,将黑桃 A 放在桌子上,然后按顺序从上到下数手上的 余牌,第二次数 1、2,将第一张牌放在这迭牌的下面,将第二张牌翻过来,正好是黑桃 2, 也将它放在桌子上,第三次数 1、2、3,将前面两张依次放在这迭牌的下面,再翻第三张牌 正好是黑桃 3。这样依次进行将 13 张牌全翻出来,准确无误。问魔术师手中的牌原始顺序 是怎样安排的? 算法分析:本题与例 8.6 的求解思路类似,请参考教材,这里不再赘述。所不同的是, 这里的空盒数每次要递增 1。下面所给程序完全仿照例 8.6。 #include <stdio.h>
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有