- 博客(45)
- 收藏
- 关注
原创 C练习——插入有序数组
for循环遍历if比较出位置i,for循环遍历 从尾部j开始,到i结束,将此段元素全部向后移动一位,最后。编写一个函数,实现在一个升序数组中查找x应插入位置,将x插入数组中,并使其入仍升序。插入是数组基本操作,从第零位遍历数组与x比较,x小于或等于。开始移动数组元素向后移一位,
2024-02-01 14:17:50
735
原创 C练习——模拟投掷6000次骰子
然后统计1~6每个数出现的几次,最后除以6000,输出即可。6000次,首先想到用数组记录六个面各出现次数。模拟骰子投6000次,并计算每一面出现的概率。其次,使用随机数(1~6的数)模拟骰子。先循环随机数模拟投掷,将结果记录于数组。再循环遍历数组计算概率。
2024-01-15 11:17:07
1311
原创 C练习——杨辉三角
行数与列数相同,第n行有n列,首选二维数组,先给数组赋值,再打印数组。先搭元素为1的框架,每行第零列元素为1,每行末列元素为1。把它的全部元素左对齐,就可以看成近似杨辉三角的样子。再根据每个数等于它上方两数之和,给其它元素赋值。先按规律给二维数组赋值,再打印所需数组元素。每行数字左右对称,由1开始逐渐变大。打印近似杨辉三角,行数n自选。注意数组越界问题,N=n+2。每个数等于它上方两数之和。
2024-01-14 20:23:24
1755
原创 C练习——汉诺塔
大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。,写递归代码不要纠结于递归过程,要思考的是如何用递归解决问题。分析出问题的解决思路,能够将规模逐渐减小,还要有相应的递归出口。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。hanoi函数递归,出口为 move函数,全局变量count计数。3.将N-1个柱子从 C 移动到 B。注意,传参时,ABC 要用单引号。
2024-01-13 11:40:51
959
原创 C练习——魔术师猜三位数
有一种室内互动游戏,魔术师要每位观众心里想一个三位数abc(a、b、c分别是百位、十位和个位数字),然后魔术师让观众心中记下acb、bac、bca、cab、cba五个数以及这5个数的和值。只要观众说出这个和是多少,则魔术师一定能猜出观众心里想的原数abc是多少。例如,观众甲说他计算的和值是1999,则魔术师立即说出他想的数是443,而观众乙说他计算的和值是1998,则魔术师说:“你算错了!acb = 100a +10b +c ,如此拆开,最后 m = 122a+212b+221c。
2024-01-12 17:35:52
1077
原创 C练习——递归求第n个人年龄
有n个人坐在一起,第n个人比第n-1个人大2岁,第n-1个人比第n-2个人大2岁,以此类推,……,第1个人是10岁?请问第n个人年龄多大。{ age(n-1)+2 当n>1。= { 10 当n=1。但按题意要求递归求解。
2024-01-11 20:02:06
1213
1
原创 C练习——N个水手分椰子
五个水手在岛上发现一堆椰子,先由第1个水手把椰子分为等量的5堆,还剩下1个给了猴子,自己藏起1堆。然后,第2个水手把剩下的4堆混合后重新分为等量的5堆,还剩下1个给了猴子,自己藏起1堆。最后,第5个水手把剩下的椰子分为等量的5堆后,同样剩下1个给了猴子。N个水手每次分成N组加一呢?假如某水手面前 有y个椰子,那么前一个水手面前有 y/4*5+1, 设第五位水手面前。/4*5+1,进行4次迭代,若某次y值对n取模不为一,则将x+1再试。循环N-1 次求y值,每次对y进行判定,不符合则x增1再循环N-1次。
2024-01-10 21:18:25
1327
原创 C练习——最小公倍数
定义两个正整数a、b,它们的最小公倍数范围一定不超过a*b,因此,循环遍历1到b与a(1到a与b亦可)相乘,1*a、2*a、3*a……b*a, 从小到大依对b(a)取余,第一个余数为零的就是二者的最小公倍数。for循环方便控制起始点,if判断打印结果。求任意两个正整数的最小公倍数。
2024-01-09 12:37:05
639
原创 C练习——21响三方礼炮重叠计数
在海军开幕式上,有A、B、C三艘军舰要同时开始鸣放礼炮各21响。已知A舰每隔5秒放1次,B舰每隔6秒放1次,C舰每隔7秒放1次。count作为观众听到礼炮声数,时间轴 t 从第 0s 开始,此时三方同响,count++,往后ABC各按间隔每方都响满20次为止,while循环t,对于礼炮A,如果t 是5的整数,则响,BC同理。while循环时间t,if判断count++,t++,t>20*7终止,注意一个时间点上,只要ABC有一个响,count++,时间终点以C为准。
2024-01-08 14:09:00
865
原创 C练习——肇事卡车车牌号
甲说:“牌照前两位数字是相同的”,乙说:“牌照的后两位数字是相同的,但与前两位不同”,丙是为数学家,他说:“4位车号正好是一个整数的平方”。请根据以上线索求出车号。一辆卡车违反交通规则,撞人后逃跑。现场有3人目击事件,但没有记住车牌号,只记住了车号的一些特征。是否等于m^2, k为四位数,m取值从31开始,限制条件为 m*m <= k。,i和j取值范围 0~9,整数m的平方 = k,所以穷举i 、j,判断。for循环加if判断打印。
2024-01-07 14:49:01
882
原创 C练习——鸡兔同笼
有若干只鸡和兔子在同一个笼子里,从上面数,有98个头;从下面数,有386只脚。问笼中各有几只鸡和兔?数学上列二元一次方程组求解,所以采用穷举法,但可以缩小穷举范围,设鸡有x只,兔y=98-x。循环x的值,判读是否满足2x+4y=386,即可。for循环 加 if判断 打印结果。
2024-01-06 12:33:19
1633
原创 C练习——马克思手稿中的趣味数学题
有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,请编程计算男人、女人和小孩各有几人?缩小穷举范围,由于每个男人3先令,最多只有16个男人,同理,最多只有25个女人,小孩人数由30-x-y求得, for循环,if判断打印。穷举x,y,z所有可能的数,将符合方程组的x,y,z进行打印。
2024-01-05 11:57:36
944
原创 C练习——定期存取并行
题目:假设银行一年整存零取的月息为1.875%,现在某人手头有一笔钱,他打算在今后5年中,每年年底取出1000元作为孩子来年的教育金,到第5年孩子毕业时刚好取完这笔钱,请编程计算第1年年初时他应存人银行多少钱。
2024-01-04 18:30:54
1151
原创 C练习——递归打印无符号整型数
输入一个无符号整型数,从高位到低位打印每一位例如:输入 12340输出:1 2 3 4 0#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>void print(unsigned int n) //函数功能:按顺序打印n的每一位{ int a = n % 10; if (n>9) { print(n / 10); } printf("%d ", a);}int main(){ unsigned i
2023-12-24 16:29:35
563
原创 学C笔记归纳 第十五篇——二维数组
16进制 0x28 转十进制,32+8 = 40,就是数组arr[10]所占内存,40个字节。二维数组越界一点还是会正常打印,多了打印也会错,敲代码时注意。数组越界 编译器是不会报错的,需要我们在写代码时自己注意。0x10 ,16个字节,16=4*4,一行4个元素。调试过程找不到错,重新捋一遍,发现少加了 逗号。,计算的是整个数组的大小,单位是字节。,这里的数组名表示整个数组,取出的是。, 我们可以将它当作一维数组的数组。数组传参时,传的是首元素的地址。
2023-12-17 11:20:58
308
1
原创 C练习题——打印两个数的最大公约数
算法二优化:辗转相除法,大数对小数取余,小数再对余数取余,余数为零停,无须比较,大小自动交换。算法一:暴力求解(效率不够)
2023-12-14 14:44:20
300
1
原创 C练习题——打印第n个斐波那契数
斐波那契数列:1 1 2 3 5 8 13 21 ...注意循环结束条件,和变量c的初始值。从第三个数开始,第n个数为前两数之和。
2023-12-14 14:25:00
190
1
原创 学C笔记归纳 第十三篇——函数3 递归(重点)
这个计算量就恐怖了,函数递归会不断占用栈区空间,如果是第60、100呢?因此,在解决问题时,我们的权衡利弊十分重要,如果写个函数,用递归轻松解决问题且不会占用太多内存空间,就用递归方式,反之非递归。递如果没有终止条件,就会不停的调用自身,每一次函数调用都会在栈区申请空间,最终导致栈溢出。归:递完,执行递语句之后的语句,......完了在执行3p的归、2p、1p。递归递归,先递递递...再归归归...;存在限制条件,当满足这个限制条件的时候,递归便不在继续;,程序调用自身的编程技巧称为 “递归”,应用广泛。
2023-12-13 17:04:18
476
原创 学C笔记归纳 第十二篇——函数2 声明和定义
include "add.h" 就是将头文件里内容全部拷贝,而头文件里是函数声明,包含头文件就相当于函数声明。这种方法还有商业价值:将add.c、add.h封装成静态库(.lib)+t 头文件 打包售卖,买家难以破解复刻。告诉编译器函数名、参数、返回类型,但函数具体存在由函数定义决定;函数声明一般出现在函数使用之前,要满足先声明后使用;,使用时包含其头文件即可,自己写的头文件用双引号。在main函数中调用add函数时,在之前“以add函数为例,一个项目,头文件内创建。,一个放main函数,一个放。
2023-12-12 15:45:38
174
1
原创 学C笔记归纳 第十一篇——函数 1
发现,虽然将 a, b 的值传给了 x,y,但他们地址不同。修改x和y的值不会影响a和b的值。函数命名都是有意义的,大多包含功能英文缩写,库函数的使用必须包含头文件。官方英文版:https://en.cppreference.com。官方中文版:https://zh.cppreference.com。实参传形参时,形参是实参的临时拷贝,对形参的修改不会影响实参。既然如此,我们直接将地址传入函数,再操作即可。{statement;} 函数体,函数的实现。ret_type 返回类型。
2023-12-11 13:05:29
162
1
原创 学C笔记归纳 第九篇——分支循环语句3_for_while_do while(附九九乘法表解析和三种方式实现)
建议for循环语句的循环控制变量的取值采用“前闭后开”区间;// 10次循环:for(i = 0;4) C99语法才支持,C++可自由切换,也支持,如果报错就立马知道有这么一回事;尽量不要在for循环体内修改循环变量,防止for循环失去控制;do while相对于while,循环至少执行一次,不常用;被省略意味这部分恒成立;循环更常用,因为它的语句较为集中,便于阅读;和while循环一样注意 行循环内初始化列数。习惯 h
2023-12-09 18:57:05
330
原创 学C笔记归纳 第八篇——分支循环语句2_switch
最后一个 case语句5 可以不加 break ,但最好加上,防止后续添加 case 时忘加。break 可跳出 switch,没有 break 语句程序会往下继续执行 case语句。break 语句只能跳出自己所在的 switch语句;可见添加 default 语句可以处理异常case。switch语句 可嵌套使用;
2023-12-08 13:19:02
672
原创 学C笔记归纳 第七篇——分支循环语句1
生活中所有事物 都可 抽象成 这三种或其组合形成的语句。多分支:if——else if...else语句与其上最近的if语句匹配。练习:输出1~100以内的奇数。顺序结构、选择结构、循环结构。简单选择:if_else。
2023-12-07 17:10:23
84
1
原创 学C笔记归纳 第六篇——结构体
"语句是否繁杂,如果频繁操作是否过于冗杂?注意:程序运行"struct Students stu=..."时内存才分配空间存储数据。要注意printf函数里%s、%d 要与变量一一对应,否则编译器会凌乱,无法打印。结合前面学的指针,是否可以通过stu的内存地址直接访问其所储存的数据呢?通过对比发现通过指针访问数据显然是可行的。需要弄懂两个操作:存储数据和访问数据。
2023-12-06 17:31:41
70
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅