- 博客(13)
- 收藏
- 关注
原创 蓝桥杯省赛----等差数列
思路很简单就是让每个差值对1-pb[0]取余数,如果余数是0,那么就是这个差值的约数,反之则不是,所有差值的约数相加,如果都是0的话那么sum也是0,如果有一个不是0,则表示不是公约数。2.其次我们可以想到一个等差数组最短,那么它们的公差肯定是最大的,那么它们的最大公差,应该不大于两个相邻数之差的最小值。创建一个N长的数组,vs不支持变长数组,当然绝大部分的测试平台是支持的,这里也可以使用变长数组。3.接着再对所有的差值求它们的最大公因数,所得到的最大公因数就是该数组的最大公差。
2023-11-06 16:58:13
290
原创 蓝桥杯省赛真题——回文日期
int init(int a[365][4], int k, int i, int day)是我封装的一个初始化函数,里面的逻辑很简单,i是一个从1-12的数字,数组的0和1列都是用来存放月份的,i%10得到个位,i/10得到十位,十位为0则存0.可以创建一个特殊的回文日期数组s[i],里面存放的全部是ABABBABA型的回文日期,通过观察可以发现a[i][0]=a[i][2],a[i][1]=a[i][3]。一年十二个月,每个月的天数都是不一样的,可以设置一个循环变量i,判断月份。
2023-10-20 22:32:58
225
2
原创 c语言求最大公约数
最大公约数的求法有很多,在其中我认为辗转相除法是比较简单的一种。其大致原理是这样的,首先判断a对b取模,若为零,则b为最大公约数;若不为零,则将b赋值于a,余数赋值于b,再进行上述步骤。
2023-09-17 14:48:04
87
1
原创 c语言实现乘法口诀表
首先我们可以想一下思路,既然打印一个二维方向的东西,那么肯定需要两个变量控制行和列的切换,所以我们就可以采用循环嵌套的方式来进行功能的实现,其次在打印的时候整行打印比整列打印更容易实现。那么第一次循环就应该控制行变量,等到嵌套在其中的列变量打印完成以后再进行换行,具体的代码如下。
2023-09-17 14:40:22
238
1
原创 c语言实现分数求和
那么首先我们可以看到这里是要进行分数的加减运算,那么最后输出的类型应该是double或者float类型,因此我们在定义的时候就要注意到这一点。然后我们可以发现,分母是奇数那么就是正的,分母是偶数,那么就是负的。当然其他的办法还有很多比如求-1的n次幂来控制循环变量的正负,又或者通过对分母模2判断余数是否为零来判断循环变量的正负,类似的办法还有很多,这里就不一一赘述了。分两部分计算有一点麻烦了,有没有什么办法能够直接计算出来?我们可以考虑加一个变量,使其每循环一次就取反一次。
2023-09-17 14:39:06
3694
1
原创 C语言实现打印素数
比如说当判断到a/2+1的时候,就没有必要进行判断,因为1<a/(a/2+1)<2恒成立,那么我们第二个for循环的判断条件就可以优化为i<a/2;如果i在大于a的平方根后还不能被a整除,那么就可以判断a是素数。首先什么是素数,素数,又称质数,指在一个大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(也可定义为只有1和本身两个因数的数)。第一关for循环生成100-200之间的数被除数a,第二个for循环生成2-a之间的除数 i,那么只需要判断a%b的值就可以判断这个数是不是素数了。
2023-09-17 14:37:28
368
1
原创 C语言实现扫雷游戏
这个代码还是有些地方没有完善,比如扫雷展开那里,一次最多展开九个格子,还不能像我们平常玩的那种一下子展开一片,这里还需要继续改进一下。另外如果想升级难度,只需要改变一下棋盘大小和雷数就可以,代码的移植性还是比较高的。for (i = 0;i < x;j < y;j++)for (;count > 0;count--;printf("--------扫雷--------\n");for (i = 0;i < 1;j <= y。
2023-09-09 15:18:07
163
5
原创 c语言实现三子棋
讲到这里,整个三子棋设计基本上告一段落,但是这样子的设计还有一些地方有明显的不足,比如电脑是比较笨的,因为电脑的落子是完全随机的,不会根据玩家的落子去故意地阻碍玩家;再比如当我们想设计一个10*10的棋盘的时候,代码的可移植性就非常小,在判断是否连成一线的那个地方,代码判断的还是前三行和前三列的棋盘,并没有涉及到后面棋盘里面的判断。
2023-08-30 22:52:30
37
3
原创 c语言冒泡排序
值得注意的是,并不是每趟冒泡都需要进行到arr[8]和arr[9]比较结束,当第一趟冒泡结束以后,最大值就被放在arr[9]的位置上,每一趟冒泡只需要比较到上一趟冒泡结束前的一个元素。arr[1]和arr[2]比较,56>45,前后交换位置,arr[1]=45,arr[2]=56;arr[2]和arr[3]比较,56>23,前后交换位置,arr[2]=23,arr[3]=56;此时数组排序应为{23,45,56,23,69,51,45,3,5,48 };数组名就是地址,通常来说,数组名就是首元素的地址。
2023-08-25 22:14:04
55
3
原创 C语言随机数字
rand函数其原理是在使用前调用srand函数设置随机数生成器,srand()函数输入一个种子则会输出一个随机数,但是如果种子相同则输出的随机数也相同。rand函数生成随机数的范围是0-RAND_MAX(32767),题目要求我们生成1-100的随机数,那么我们只需要对rand生成的随机数%100,就可以得到0-99,那么。然后在主函数中,我们可以用一个do while函数实现游戏循环玩下去,通过switch case语句的配合进行模式的选择,输入1时开始游戏,输入0时退出游戏。函数可以生成一个随机数。
2023-08-14 22:46:00
55
2
原创 C语言字符串对比
值得注意的是,当两个字符串比较是否相同时,我们不能用password1==password2来判断,需要用到一个strcmp函数,strcmp(a,b)==0则代表a和b相同。其原理是比较两个字符串对应位置的ASCII码值的大小是否相同。首先我们可以看到是需要输入两次密码的,所以我们需要先定义两个char型的数组。system("cls)是一个清屏函数,在这个程序里面可有可无。接着就是一个for循环能够解决的问题了。
2023-08-14 21:13:39
467
原创 C语言打印3的倍数
有其志必成其事,盖烈士之所徇也。有了志向就要坚定不移地去实现它,这才是有志之士所追求的精神。无论古今,持之以恒的精神和态度都是通向成功的一块敲门砖,唯有紧握住它,成功的大门才会为我们所打开。码字不易,快来一键三连叭。如有错漏之处,还请多多指正。
2023-08-10 22:46:07
232
4
原创 C语言清除缓冲区
当我们遇到一些问题的时候,可以多从计算机的角度出发,去分析每一个语句产生的效果,从而找到解决问题的最优途径。心若不欺,必然扬眉吐气。遇到问题不要屈服,努力地去克服它,终会有扬眉吐气的一刻。码字不易,喜欢就给个一键三连叭。如有错漏之处还请多多指正。
2023-08-09 23:45:47
449
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人