粉丝261获赞806

欢迎回到中学生 c 语言编程入门,这一期的主题是编写一个程序,选出三个整数中的最大数,首先打开 ide, 新建一个语文键,命名为 bbx, 点 c, 先写上基本的重新框架,然后呢写主要内容。那么这个问题呢,设计的数据呢,有三个整数和一个最大数,四个数据,所以呢我们声明四个整数型的变量来保存他们,并。那么首先是三个整数,我们分别记左登机 n 二以及 n 三,然后呢还需要一个最大数,我们就用 max, 然后呢方法结尾。那么下一步呢,我们需要从英国那里呢读取 三个整数,那么首先先提示 整数一,冒号,引号,口号,分号结尾,那么后面呢,我们空几格,然后呢读取 四点 f 五号银号外,里面是百分号 d 银号,然后呢传入第一个变量 n e 的地址, 单击括号封号,然后呢是第二个,上面都是一样的 pro, 因此 f 整数二,猫号,引号,括号放好,结尾,再读取 cnf 引号,百分号, d 引号,逗号,传入地址 n 二,然后呢是第三个提示, prange f 整数三,冒号,引号,括号,分号结尾,然后呢读取, sten f 摆分号, d 引号,逗号,然后呢传入地址 n 三,括号放我这里。那么现在呢,我们就获得了三个整数,那么我们如何选出他们当中的最大数呢?那这个时候呢,我们可以先假设其中任意一个为最大数,然后呢用这个最大数呢去跟剩余的数进行比较, 如果有更大的数存在,那么就把这个 max 保存为最大的数。首先呢我们假设 n 是最大的数,所以把 max 呢设置为与 n 相等,下面呢就是开始判断, 如果剩余的整数 n 二大于当前的最大值 max, 那这个时候呢就把 max 呢设置为 n 二的值, 然后呢再进行一次判断,因为还有第三个整数 n 三如果大于麦克斯,那这个时候呢可以把麦克斯呢设置为 n 三的纸, 那么晨曦运行到这一句的时候呢,我们就获得了这三个指示中的最大数,所以下一步呢输出是不是因此 f 最大数值为,然后呢添加一个章鱼符,百分号, d 引号都好,然后呢用 max 呢来进行填充 替换,那么现在程序我们就写完了,首先点击保存,然后呢点击编辑,最后呢点击运行,那么首先会出现提示信息, 整数一冒号,那么呢我们就输入一个整数三,然后呢回车,紧接着呢提示出现第二个提示信息, 整数二,那么好我们输入五回车,然后呢提出现第三个提示信息,让我们输入整数三,那我们就输入七, 然后呢回车,那么三五七,很明显七是最大的,所以最终呢程序回收出最大数值为七。

大家好,今天我们来看例五点五,题目呢是要求输出一百到二百之间不能被三整除的数。 我们分析一下这个题, 他肯定是用循环来写,因为是求一到二百之间的数,那么哎的变量的处使值呢?可以写成一百,然后呢中使值是哎小于等于二百。 在每次循环中,我们都应该加一个判断语句, 那么在判断宇宙中应该写的是呢,他能不能被三整除?如果能被三整除,不打印, 也就意味着不能被参整出才打印,那在这个程序中,我们用到了一个新的语句肯提牛。那我们先想一下,以前我们用过布瑞克, 布瑞克是什么呢?布瑞克是结束循环的执行,比如说我们在 swiss 里头执行完每一个 case, 那么他后面都写一个布瑞克,他将跳出 svis 语句。 那么如果在循环中我们使用布瑞克的话,那么是不是不论现在的 i 值是几, 那么这个循环都不做了,他将跳出这个循环,循环结束。而我们今天用的 ctrl 呢? 他指的是什么?他指的是结束本次循环,也就是哎现在是几结束这次循环,比如说 i 得十,那么我在循环中遇到一个肯提牛, 那么他肯定就下面的语句不做了,他再跳到判断语句,跳到 fo 的开始,也就是做 i 等于十一的下一次循环,并不是这个循环结束,而是结束 i 等于十这次循环。 这样的话,我们总结一下,布瑞克呢是结束循环体,整个循环都不做,而肯定用的是结束本次循环,记住是本次循环,挨得十这次循环不做了,挨得十一那次继续往下做。我们知道了布瑞克和 肯听牛之后呢,我们来看这个程序的写法, 定义一个变量 n 为整形,当然这个我们用 i 正常哈,也就是可以用 i 来做技术,也可以用 n 来做技术,是一样的。 four 里面的三条语句,第一条 n 复出值 n 等于一百, n 从一百开始循环, 那如果按小于等于二百循环到二百,二娃也做二百零一,不做 n 加加,这样就完成了。从一百到二百,这个程序应该执行二百零一次。 在程序中我们加了一条衣服鱼坠,我们主要分析下这个衣服鱼坠的作用, 如果 n 对三求于等于零,那也就意味着他能被三整除, 如果能为三省除 ctel, 刚才我们说了遇到 ctel 这次循环就不做了,那比如说现在 n 等于一百,一百除以三等于零吗? 于是不得灵,他除不开, 那就是一百,不能为三整数,不做肯提牛打印一百,然后 n 的一百,这次循环结束, 下一次按的一百零一,一百零一除以三等于零吗?不能被三乘除,那么不做肯定就打印一百零一,一百零二, 一百零二除以三等于零吗?余数等于零,那么他能被三整除。做肯定牛,遇到肯定牛,也就是刚才我们说了肯定牛,下面也就是讲普赛做了,也就是不不打赢普润的,那他直接跳到下一次, n 等于一百零三,一百零三除不开,打印一百零四打印,一百零五不打印, 那这样的话,我们这个循环当执行到二百的话,他再判断二百能不能被三整出,二百不能被三整出, 就不做肯定那种打印,从而循环了一百零一次完成了。遇到十三的整数倍数的时候,就不打印其余的打印,然后最后打印一个换行程序结束了, 这是我们看的用 ctrl 就是完成的这个程序,在这个里面我们主要知道了, ctrl 呢结束了本次循环结束一次,不是结束整个循环。我们看一下执行的结果, 一百一百零一,一百零二没有打印,一百零三,一百零四,一百零五没有打印, 一百九十八没有打印,一百九十九二打印了,二百打印了。这个呢和我们的程序是吻合的,这是我们看的肯定有一句的用法。

好的,大家准备好了吗?呃,准备好了的话,我们开始第五课的知识点的一个测试啊, 大家准备好了,请打幺二三啊,我们继续开始课程,那我先把这个静音给那个静一下。 好的,那么这节课呢,我们主要是简单的了解一下。呃,就是怎么来利用窗口锯品 去操作啊,对我们的窗口来进行一些操作啊。嗯,但是这几个函数他设计到的类型这些比较多啊,所以说我们主要是先讲怎么来实现这个功能啊,细 节上的,呃,可能我们会就是说讲,讲的比较粗浅啊,那么如果细节上有什么不理解的,那么过后之后啊,过后啊,我们再来交流啊, 那么我们现在看一下。嗯,那么这节课的目标呢,我们就是一个是要实际一个聚柄的一个作用。 那么我们先来简单的说一下什么叫锯屏,那么锯屏的话,比如说我们打开一个文件,他会获得一个文件锯屏啊,比如说我们查找这个窗口,他可以获得窗口锯屏 啊,或者是其他的啊,比如说我们要这个像打印机打印数据啊,那么相应的设备呢,我们也会 取得一个聚品,比如说我们要操作进程现成也可以获得相应的聚品。聚品呢,它就是相相当于我们汽车的那个钥匙啊,有了这个钥匙之后呢,我们才能够对它进行操控,而这个翻的温的人, 他就可以返回一个指定窗口的具品。好,那么我们先来看一下,简单的了解这个翻的温度这个函数,看我们怎么通过这个微软提供的一个 api 函数来获得操作窗口的这把钥匙, 当然在这个 vs 里面呢,能够查到函数的原型啊,百度里边呢,相当于要详细一点啊,所以说在这里呢,我们就直接在百度里面看啊,那么 这里这个方的温度呢,他一共有两个参数,这两个参数呢都是制服串啊,制服串,但是他这个 ct 开头的啊,这个 c 呢表示敞亮, t 呢表示什么呢?表示就是说一个兼容性, 他能够什么呢?在多字节的环境呢,这里就是多字节的致富创,如果是在优利库的的环境,那么这里呢就是一个宽致富的致富创啊,具体我们以后 再详细的讲这个东西啊,讲这两者的区别,那你就把它简单的想象成是一个致富创就可以了。那么前面这个致富创呢,他表示的是一个窗口啊的一个类型,类类明,而后边呢是他的一个标 标题,那么我们以这个计算器为例,那么看到的这个计算器三个字,这个就可以作为他的一个第二个参数,就是这个标题,但是这个类名我们怎么查看呢?类名我们就这样是看不到的 啊,是他是没有显现出来的,我们需要借助 aps 函数或者是第三方的工具才能够查看到这个窗口的内米。 恰好这个 vs 环境里面,他有一个工具叫是派加加啊,这个工具他可以取得任意窗口的标题名或者是类名,那么我们以计算器为例, 拖动鼠标移到窗口标题这里,那么他可以获得他的标题呢,是计算器 里面呢,是下边这一个英文的制服串。好,那么我们先把这个工具取得的标题和内面呢给复制下来, 瑞敏,就是下边这个啊,那么有了,实际上我们只需要其中的一样就可以啊,来获得这个窗口的聚品,那么获得窗口的聚品呢,我们就要调用这个翻的温度,好,我们来试一下,那么同时我们再把这个 窗口锯柄给记下来,在这里我们也能够看到这里有个锯柄啊,用这个磁派家家获得的锯柄是多少呢?这个锯柄每次打开之后他是会变动的,但是在这个计算器没有关闭之前,这个锯柄呢,他是不会变化的。 好,我们关掉实拍家家那个窗口, 那窗口聚品呢?它实际上是一个整数啊,这里呢它是有十六十六进制的方式显示出来的。那么比如说我们已经有了这个聚品, 那么我们可以怎么来操作这个窗口呢?那么实际上能能够操作这个窗口的,呃,功能的话有非常的多,比如说改变 窗口的大小,改变窗口的样式啊,比如说在窗口上面画图啊,非常多的功能啊,呃,窗口的关闭,这最大化,最小化呀,这类的都可以通过这个窗口去品牌来控制。 但是这节课呢,我们只是简单的对他的标题进行更改或者是获取啊,那么获得他标题的这个函数 是这个 getty window text 设置这个窗口标题的这个喊出来是这个 sector windows text。 好的,那么我们新建一个新的项目来做这个测试, 那么我们在啊这里需要暂停调试,然后我们在这里新 建一个项目,取名为 a 零零,表示是我们的第五扣。 那么由于我们要使用这三个 api 函数,这三个 api 函数,所以说我们需要包含的投文件呢,就是我们的 windows 投文件啊,需要包含它, 必须要包含这个 windows 图文键,我们才能够调用微软提供给我们的呃标准的这些 api 的结构, 而其他的多余的我们把它给去掉。那么这个窗口具品的类型呢?是一个新的类型,实际上他也是一个整, 也是一个指针啊,那么这个类型呢?用 hwnd 来表示啊,我们这里为了方便理解,我们就 写成中文的变量啊,后边这里是跟变量名,跟我们前边的啊,樱桃 abc 那个是一样的,这是变量名,那么这个句柄呢?我们把它给什么呢?写进去啊,那么直接写这样一个整数进去,编译他是通不过的, 这个时候我们编译他是通不过的,虽然说我们知道这个窗口聚品他就是这样的一个整数,但是这里我们如果要通过编译的话,需要做一个强制转换,那么一个括号里边跟上这个类型,那么后边跟一个 量或者是变量都可以做一个强制转换,那么这样的话,也就是说我们窗口聚柄的话也就放到了这个变量里面了,那么接下来我们就可以操作这个窗口了啊, 那么操作这个窗口,我们说了今天可以操作这个窗口的接口函数呢,也非常的多啊,那么今天我们我们作为做例子了,我们就调用这个舌头 windows taxi 这个函数来做例子,然后我们把窗口锯屏给放进去,然后后边 新标题啊,这是一个字不算,你随便写什么都可以啊,随便写什么都可以,舌头温度推个指头 啊,这里多写了一个字母。好,那么这个时候我们 运行一下,把这个设置为我们的启动项目,那么我们看一下,这是我们的计算器啊,那么我们运行一下之后 啊,再来看一下,这个时候窗口标题呢,被我们的这个 apa 的接口函数呢给变更了, 那么后期的我们要跨进程的要读取啊,目标的这个内存,读写它的内存或者是调用它的功能,也都需要调用到类似的一个 api 的一个接口 啊。好,那么这样的话,你看有了这个窗口具屏,我们可以操作它啊,但是我们说了,实际上这个 计算器他每次启动之后的话,他会变化的啊,比如说这个时候我们计算器关掉了,那么重新打开,那么我们再次调用这个代码,我们看还有没有作用, 然后我们发现这个时候他不起作用了,因为这个时候我们如果再用工具去获得 他的窗口聚品的话,我们会发现啊,这个窗口聚品呢,他已经变化了,变成了一个啊,这个时候他重启之后呢,窗口聚品呢是会发生变化的, 那么所以说我们一般会通过什么呢?要去更改某一个标题的话,我们会通过另外的一个 api 函数来实现,这个函数呢叫翻斗温度。好,我们注视掉它,那么我们只需要类名或者是标题名的一项啊,其中的一项就可以了, 当然这个呢,他后边跟了支付创的这种人,一般呢都分了这个 a 货 w 的两个版本, windowswin 少了一个 n, 好,根据提示回来啊,然后这样的话啊,我们呢就可以获得他最新的一个什么窗口具品的,当然实际上这个计算器他是标题名啊,我们把它改变之后呢,第二次我们是找不到的 啊,所以说我们最好,实际上是用论语才是最好的。那么这个窗口句柄呢,它是一个指针,指针的格式化是用百分号啊,这是一个格式化制服,一个新的格式化制服, 那么指针呢,它是一个特殊的整数啊,像这种整数呢,我们要用百分号加 p 来格式化是 比较好的。好,我们编辑生存一下,编辑生存再次打开计算器 好,然后我们再跑起来,那么这个时候我们可以发现他被更改了,但是我,但是如果我们这样写, 那么我们二次想要在这里给他设置一个新标题的时候,那么由于他的标题了已经变了,我们发现的话是更改不了的啊,所以说我们为了优化这个代码呢,我们把它给换一下啊,把它换一下, 复制一下,一下上一行的代码,我们把这个参数来设置为空,把前边这个窗口的内鸣 给填上去啊,因为这个内容它是不会变的,它能够保证呢每次都有效, 那么这个时候我们发现他是有效的,是吧?啊,他的标题呢被我们给更改了,而且这里呢他也能够显示出来这个窗口的具品是多少啊? 窗口的锯屏六十四位下,他就是一个六十四位的啊,一个纸层三十六位下就是一个三十二位的纸层啊,当然一般为了兼容性啊,考虑一个三十二位和六十四位的一个兼容性,一般来说这个锯屏呢啊不会超出四个字节, 但是你要记住这个指针的话,它实际上是八个字节的啊,在六十四位下,在三十六下是四个字节, 这个比较特殊啊,比较特殊啊,比如说我们这里解决方案我们选的是叉六四,那么我们来看一下这个具品所占的。 好,我们来看一下窗口聚品他所占的内存空间是多少?首先来看一下六十四位下边,那么他占的这个聚品呢,是八个字井,八字井我们可以把单位给他加上, 在六十四位下,这个窗口聚柄呢,他占了八个字节的内存空间,那么如果你这里选的就是说我们要生成的程序,你是生成的是三十二位的,就选叉八六。如果是叉八六的话, 我们看一下这个时候呢,他是四个字节的啊,一定要注意区分的是三十二位或六十四位的指针,他所占用的 内存空间不一样,这也是三十二位和六十四位一个最大的区别,就像我们之前预习课里边讲的这个计程器 ex 或 rx 一样,三十二位 ex 占的四个字节,六十四位 rx 占的是八个字节。 好了,那么今天的课程呢?呃,就是这样,但是在这里呢有很多其他相关的,就是说知识点的,我们可能呃,没有讲到啊,比如说这个啊,翻的温度里边这个 a、 l、 p、 c、 t 是大, 是个什么东西是吧?啊?这个比如说这下边的这个 lpcws 又是一个什么东西,那么这这个呢?我们在后边讲到的时候啊,讲到就比如跨平台的时候了再讲,那么现在呢你就把它简单的当成是这种制服串啊就可以了啊, 把它当成是一个简单的支付算就行了啊,后边呢我们会把这些啊没有讲到的会把它给补上啊啊,因为这个课程的一个展开这些知识点的一个展开 的话都是需要时间的啊。呃,顺便的说一下啊,明天呢我们, 嗯主要就是读取基础偏移这类的啊,明天的课程 还有获取我们进程的具品进程的 pid 这一类,那么今天呢我们主要就是 呃了解聚品这个知识点,聚品有多种多样的,我们说的县城有县城的聚品,那么有了这个县城聚品之后呢,我们就可以去 对县城啊进行挂起结束啊,或者是恢复啊,或者是获取他县城的环境的所有继承器啊,或者是县城的一些信息占用的时间片啊什么的,反正呃进程。同样的 如果我们有了进程的具品,那么并且有了相应的一些权限之后呢,我们可以对进行这个进程呢可以去读取他的呃数据,也可以去注入代码分配内存。 嗯结束进程啊,或者是挂起进程相关的很多很多的一些操作啊都可以。好的,那么今天的话知识点就到这里了,今天呢就讲两课啊, 呃,因为我们操作上啊讲的比较快。嗯,所以说如果你有哪的有哪一部分知识点,嗯, 没有听明白的下来之后扣扣你可以联系我,我可以帮你,就是一对一的指导你啊,把不明白的地方啊给你讲明白啊。对,你看这里工具里边这个工具如果你找不到的,是吧?啊,也可以在群里边和大家一起交流一下啊, 交流一下,那么重点呢还是过后的一个时间过后呢,因为你看每一节每一刻的代码我都给大家保存做的啊,大家可以下去之后呢 啊,一个是看一下代码,第二个把这些代码呢,你按照自己的思路给修改一下是吧?比如说啊,这里布置一个小小的作业是吧?比如说你把这个啊,可能是这个函数的功能是计算啊, a 加 记得直并返回。那么这里呢布置一个小小的作业啊,今天的一个作业 本来就是总体的一个作业啊,布置一下本来是上一节课呢, 过来就是写一写一道函数啊,函数就是这叫计算 ab 相相减的的啊, 这样吧,我把这个函数的格式啊给大家写出来啊,就是说相当于呢就是刚才的那个函数啊,呃,把它换一个名字,然后这里不是做加法吗?然后呢 你写一个函数来,就做一个 ab 两个字做一个减法啊,这样的一个函数,比如说 那么写一个函数啊,你自己添加代码,那么功能呢?也就是什么呢?计算这个传进来的 ab 两个字相减就是要求 ajb 的并发挥啊。 好,这就是今天的一个简单的一个作用。呃,当然还有就是我们讲到的这些知识点,这些 apa 函数自己也要下去之后呢要练习一下啊,是吧,你自己 只要,比如说你可以换一个窗口来做测试,今天我们选的是计算器,比如说你可以选什么呢?你可以选画画图或者是你自己写一个窗口是吧?有很多程序的啊,你可以选其他的,比如说就了这个第八个来说你可以用这个 窗口来做测试也可以啊,是吧,只要你能够获得他的窗口具品,那么是不是你也能够啊,我们再加一个作业吧啊你们自己试一下啊,就 坐列二啊,这是一把,然后马二呢就是修改。嗯,叉 tbg 三二这个就是这个调试器啊,修改这个调试器的窗口标题, 不管是三十六的都可以 啊。今天就两个作业啊,一个呢就是写一个函数啊,另外呢就是修改这个调试器的窗口标题,这个调试器也可以。其他的调试器也可以啊,比如说 ce 那个工具也可以啊, 反正你自己找一个目标程序来练习一下就可以了。然后练习好了之后呢你可以把你的代码发给我啊,如果遇到问题也可以问我。 呃还有没有什么问题,有问题的话可以在课堂上提提出来啊,也可以等会下课之后啊,单独的。呃联系我 啊,课堂上没有讲到的啊,或者是你觉得没有讲到的,想了解的。 自己写的程序内名肯定可以随便定义啊,你要带窗口才需要这个内名,你没有窗口的话就不需要这个内名了。 代码不需要记啊,这个代码这些代码都保存着的,你可以什么?比如说就像这个窗口的这些代码啊,不用记得 是不是你只要会修改他就行了,然后这些代码你以后练习多了,用多了之后他自然是吧该记得常用的他肯定就你用, 用多了之后自然而然的就记住了,你记不住的时候,你就复制粘贴,然后修改你想要达到的功能就行了。那么后期你用多了之后,你自然就记住了这些东西,它是顺其自然的一个过程,你如果每一节课你你这些关键字你就 都要,什么都要单独花时间去记的话,那肯定你学起来就非常的费力了,是吧?本来我们学习是一件非常轻松的一个事情,你有这个兴趣是吧?有轻松的方法啊, 我们当然如果你非要去借啊,你有这么多时间,这个也可以,是吧?每个人的学习方法它是不相同的啊,你要在学习的过程当中呢,要找到一个适合自己的学习方法啊, 不是说所有人的学习方法都是一样的, 也要提升大了,肯定是要到后边了啊,是吧?我们后边才是提升的,前面是基础的,因为我们这一期的学院里面也有大概有百分之三四十的人,他基础比较好, 技术比较好的,那你肯定是不一样的,这些课程也不需要听技术好的,你可以就是说等着讲后边的课程,或者是我以前的那些课程呢,你可以先参考着,先选学一下我之前的那些老的那些课程, 前面几周的课程,队友 基础的帮助肯定都不大的,因为那些你已经学过了啊,都会了,他听清楚肯定没有兴趣的。



