![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言习题
林沁妍
那些相伴走过的记忆 如烟火般耀眼
展开
-
大小端字节序
1.大端模式:将数据的高字节保存至内存低地址处,低字节保存至内存高地址处。2.小端模式:小端将数据的高地址保存至内存高地址处,低地址保存至内存低地址处。3.至于为什么要区分大小端,这是因为在计算机系统中是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit,但在c语言中除了8bit的char之外,还有16bit的short型,32bit的int型(具体取决于编译器),另外对于位数大于8位的处理器,例如16、32位的处理器,由于寄存器宽度大于一个字节,那么必然会存在着一个如何将多个字节安排原创 2022-02-27 21:49:25 · 377 阅读 · 6 评论 -
换汽水问题
1.规则:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给lin元,可以喝多少瓶汽水。2:思路:方法1:换取条件为至少具有2个空瓶,lin元可购买(lin/1)瓶汽水,之后可得到(lin/1)个空瓶,每次可获得(空瓶数/2)瓶新汽水,考虑购买时空瓶数可能并不是2的倍数,新空瓶数=空瓶数/2+空瓶数%2,需多次遍历,可利用循环实现。方法2(找规律):设lin={1,2,3,4,5,6,7,8,9,10},总瓶数={1,3,5,7,9,11,13,15,17,19}由此可见总瓶数为等差数列,原创 2022-02-20 15:51:36 · 636 阅读 · 4 评论 -
折半查找法
1.折半查找法是一种在有序数组中查找某一特定元素的搜索算法(若无序需先将其排序)2.首先确定好左(left)、中(mid)、右(right)3个位置,一般情况下中间位置mid=(left+right)/2但如果查找的范围非常庞大,left+right的数值会超过程序所承受的范围,导数据致溢出泄露这时我们可以采取平均划分的办法来进行运算,对其数值较大的一方减去最小的一方得到他们之间所相差数,将相差数进行平均划分给2方,从而就可以得到相应的中间数mid=left+(right-left)/2原创 2022-01-20 15:27:56 · 18781 阅读 · 6 评论 -
实现月份计算器
#include <stdio.h>void My_day(){ printf("\n"); printf(" 月份计算器\n"); printf(" 1.开始\n"); printf(" 2.退出\n"); printf("\n"); printf("请输入你的选择:");}void My_year(){ int year = 0, mo.原创 2022-01-17 19:56:55 · 1780 阅读 · 5 评论 -
汉诺塔问题
1.规则:在一根柱子(a)上从上到下穿好了由小到大的轮盘,给你两根工具柱(b、c)由一根柱上移到另一根柱上,一次只能移动一片轮盘,并且始终保持上下大小的顺序2.思路:设A柱为起始柱,B为工具柱,C为目标柱,将A柱底部最大圆盘上方的所有圆盘移动至工具柱B柱,底部最大圆盘移动至目标柱C柱,B成为起始柱,A成为工具柱,将B柱底部最大圆盘上方的所有圆盘移动至工具柱,底部最大圆盘移动至目标柱C,依次循环,使每一次底部最大圆盘移动至C柱#include <stdio.h>void原创 2022-01-21 15:12:02 · 292 阅读 · 2 评论 -
青蛙跳台阶问题
1.规则:一只青蛙一次可以跳1个台阶,也可以跳2个台阶,求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果,考虑当n=0时,青蛙原地跳结果为1)(1).思路:当n=0时,青蛙原地跳共有一种跳法,当n=1时,可直接跳上台阶,共有1种当n=2时,可一次跳上一级台阶,再次跳上二级台阶,也可直接跳上二级台阶,共有2种跳法......以此类推,可以发现当青蛙跳上n级台阶时,共有f(n)=f(n-1)+f(n-2)种跳法(2).注意:当青蛙需要跳上的台阶数过大时,使用递归实现,程序中计原创 2022-01-25 14:48:36 · 4114 阅读 · 4 评论