随笔分类 - c语言程序设计第五版谭浩强课后答案
摘要:用选择法对10个整数排序 【答案解析】 选择排序原理: 总共两个循环,外循环控制选择的趟数,内循环控制具体选择的方式。 用maxPos标记区间中首元素位置,然后用后序元素依次与maxPos标记的元素进行比较,如果有元素大于maxPos位置的元素,用maxPos标记该元素的位置,直到区间的末尾。 该趟
阅读全文
摘要:用筛选法求100之内的素数 【答案解析】 素数:约数为1和该数本身的数字称为素数,即质数 筛选法:又称为筛法。先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都
阅读全文
摘要:两个乒乓球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程序找出3对赛手的名单 答案解析: 从题面上得知,每队为3人,则隐含条件为队内三人是不能比赛的,并且A一定不会和X比,C一定不会X和Z
阅读全文
摘要:输出以下图案: * *** ***** ******* ***** *** * 答案解析: 该题目需要关心当前行对应的从最左边到第一颗*的空格数量以及星星数量。将该题分为两个部分,前面4行和后面3行来进行拆分。 前4行中: 第一行:行号为0, 空格数为3,星星数量为1; 第二行:行号
阅读全文
摘要:用迭代法求x=$\sqrt \(x_{n+1}\) = \(\frac{1}{2}\)(\(x_{n}\) + \(\frac{a}{x_n}\)) 要求前后两次求出的x的差的绝对值小于$10^{-5}$。 答案解析: 题面上已经告诉两条信息,一个是x=\(\sqrt{a}\),所以我们可以通过a求
阅读全文
摘要:猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘多少个桃子。 答案解析: 从题面上来看,可以推出,后一天的桃子数量 = 前一天
阅读全文
摘要:一个球从100m高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米,第10次反弹多高。 答案解析: 该题目需要循环10次,在每一循环的时候,需要将下落的高度和回弹的高度加起来。需要注意的点,第10次下落不需要在计算回弹的距离了,所以需要特殊处理下。在计算每次
阅读全文
摘要:有一个分数序列,求出这个数列的前20项之和。 \(\frac{2}{1}\),\(\frac{3}{2}\),\(\frac{5}{3}\),\(\frac{8}{5}\),\(\frac{13}{8}\),\(\frac{25}{13}\),... 答案解析: 从题目当中可以看出来,下一个分式当中
阅读全文
摘要:输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是水仙花数,因为153=1*+5*+3 答案解析: 从题目当中得到”水仙花数“为一个3位数,则范围确定为[100, 999]。另外需要获取该数字的百位数字,十位数字,个位数字相加起来等于该数本身,则我们
阅读全文
摘要:$\sum\limits_ 答案解析: 对于$\sum\limits_^{100}k$而言,指的是求从1到100的和。每个数字为整数,求和也为整数 对于$\sum\limits_{50}2$而言,指的是求从12到502的和。每个数字为整数,求和也为整数。 对于$\sum\limits_^{10}{\
阅读全文
摘要:求$\sum\limits_ 答案解析: 该题需要从1循环到20,依次求出每一个数字阶乘的结果。所以在代码当中需要有两个循环,大循环从1到20,保证1到20个数字都被循环到,小循环里计算N阶乘,累加求和。注意:对于20的阶乘已经超出了int类型能过表示的数字范围,所以在代码当中使用double类型
阅读全文
摘要:输人一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数 答案解析: 该题可以调用getchar函数,从stdin流中读入一个字符,当输入多个字符时,getchar()再执行时就会直接从缓冲区中读取了。等同于getc(stdin)。所以,我们循环调用getchar,直到将标准输入的内容读到换
阅读全文
摘要:输人两个正整数m和n,求其最大公约数和最小公倍数 答案解析: 该题题目直接使用“辗转相除法”来求解最大公约数,以除数和余数反复做除法运算,当余数为 0 时,就取得当前算式除数为最大公约数。 最大公约数和最小公倍数之间的性质:两个自然数的乘积等于这两个自然数的最大公约数和最小公倍数的乘积。所以,当我们
阅读全文
摘要:请补充例5. 7程序,分别统计当“fabs(t)>= le- 6”和“fabs(t)> = le- 8”时执行循环体的次数 fabs(t)>= le- 6 ,示例代码 # include <stdio.h> # include <math.h> int main() { int sign = 1;
阅读全文
摘要:请画出例5.6中给出的3个程序段的流程图 流程图1: 流程图2: 流程图3:
阅读全文
摘要:有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1,见图。这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。 解题思路: 塔的半径为1m,则x坐标小于-3或者大于3,以及y坐标大于3或者小于-3则都是0m的建筑;其余
阅读全文
摘要:输入4个整数,要求按由小到大的顺序输出 解题思路: 四个数中先找到最小的,剩下的三个数中找到第二小的,剩下的两个数中找到第三小的。 答案: #include <stdio.h> int main() { int a, b, c, d; int max_num; scanf_s("%d %d %d %
阅读全文
摘要:企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提成10%;利润高于100000元,低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成,高于100000元的部分,可提成7. 5%;200000<I≤400000时,低于200000元的部分
阅读全文
摘要:给一个不多于5位的正整数,要求:①求出它是几位数;②分别输出每一位数字;③按逆序输出各位数字,例如原数为321,应输出123。 ①求出它是几位数; 解题思路: 大于10000就是5位,否则大于1000就是四位,否则大于100是三位... 答案: #include <stdio.h> int main
阅读全文
摘要:给出一百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。 90分以上为'A',8089分为'B',7079分为'C' ,60~69分为'D' ,60分以下为'E'。 解题思路: 根据不同的阶段成绩区间作为成绩的判断条件,属于哪个区间则输出对应等级即可 答案: #include <s
阅读全文