练习任务
写一段代码,打印100-200之间的素数,素数也叫质数,是指大于1且只能被1或者自身整除的整数。
优化上述代码,思路是,非素数的特点是一定可以写出两个因数相乘的形式,并且较小的那个因数必然小于等于这个非素数开平方。由此,我们的判断范围就缩小了。(开平方函数sqrt())
使用sqrt()函数需要声明头文件math.h 。在实际书写的过程中遇到了关于sqrt有多个重载函数问题,解决方案在 关于sqrt有多个重载函数问题的解决方案-CSDN社区
我在上面使用的方法是使用sqrt(1.0*i)来增加开平方的精度,至于原因我的理解是开根号大多数都是开出的小数,与我们定义的整型相矛盾。(有本书《素数求解的n种办法》)
下一题,输出10个数中的最大值:
下一题,写出一个乘法口诀表:
运行结果有点好看:
下一个,猜数字游戏:1,由电脑来生成一个随机数 2,猜数字,猜大了或猜小了会提示 3,要求由基本的可视化菜单
运行结果:
这里使用了库函数rand(),随机生成一个整数。需要声明stdlib.h,另外我们用rand()%100取余操作确保我们要猜的值不会大的太离谱,范围定在0-99,两层while循环嵌套实现我们的功能。
听了老师的课,优化了一下菜单,让他看起来更好看一些:
时间戳是什么呢:当前计算机的时间减去计算机的起始时间(1970.1.1.00:00:00),单位是0秒,它的特点是始终在变化,可以作为一个随机起点来使用。
优化后的运行结果:
goto语句
goto语句在理论上是没有必要的,不建议经常使用。goto可以指定位置跳转,并且是无条件的。但是在某些情况下goto语句还是有用的,最常见的用法就是终止程序在某些深层嵌套的结构的处理过程,例如一次跳出两层或三层循环。
使用goto语句实现一个关机程序,有点整蛊的感觉,只有输入我是猪才会取消关机: