09 2018 档案

摘要:转载自这里: http://www.cnblogs.com/xuhj001/p/3436177.html 学到数组与指针这一块内容,感觉脑袋又开始混乱了,理不清楚变量名 地址 数组地址 指针的关系了。 里面有一句话挺好的: 变量名实际上是一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内 阅读全文
posted @ 2018-09-29 14:55 eatwhat 阅读(2858) 评论(0) 推荐(0) 编辑
摘要:#define YEARS 5#define MONTHES 12 感想:二维数组总是感觉没有那么一维数组直观,写起来比较费脑子,要多写啊。 阅读全文
posted @ 2018-09-29 13:16 eatwhat 阅读(732) 评论(0) 推荐(0) 编辑
摘要:1.比如c99里面有一个特性, int count[]={0,[5]=7,9,10} 这种在VS2017里面是编译不通过的。; 2.c99有一个变长数组的概念(VLA),但是vs2017不支持。 阅读全文
posted @ 2018-09-29 11:53 eatwhat 阅读(1797) 评论(0) 推荐(0) 编辑
摘要:http://www.freetechbooks.com/ 阅读全文
posted @ 2018-09-29 09:39 eatwhat 阅读(172) 评论(0) 推荐(0) 编辑
摘要:有这么一道题。医院里的医护人员,包括A在内,总共有16名医生和护士。下面讲到的人员情况,无论是否把A计算在内,都 不会有任何变化。在这些医护人员中:护士多于医生;男医生多于男护士;男护士多于女护士;至少有一位女医生。那么,请问A的性别和职务是什么? 设男医生个数为m1,男护士个数为m2,女医生个数为 阅读全文
posted @ 2018-09-28 23:59 eatwhat 阅读(1016) 评论(0) 推荐(0) 编辑
摘要:效果如下图: 思路就是外层循环控制要打印的行数,里层循环控制每行打印的数字个数。 阅读全文
posted @ 2018-09-28 13:56 eatwhat 阅读(3354) 评论(0) 推荐(0) 编辑
摘要:效果如下: 我是怎么想的: 总共需要打印6行字母,那么就需要一个循环来控制打印第几行,大概代码如下: for(int i=0;i<6;i++) { } 每行都会打印字母,而且循环越往后,需要打印的字母越多,那么每行打印字母也需要一个循环,比如打印F到A这需要一个循环,其它也是同样的道理。每行打印完都 阅读全文
posted @ 2018-09-27 00:53 eatwhat 阅读(3189) 评论(0) 推荐(0) 编辑
摘要:效果如下: 我是怎么考虑这个问题的。 首先共有5行,那么我们需要一个循环,让这个循环走5遍。 那么我们有个大概的代码结构 for(int i=0;i<5;i++) { } i的定义域是[0,4]之间的整数,共5个数,所以循环5次。 接下来再考虑,第一次循环输出一个星,后面几次循环输出的星越来越多,所 阅读全文
posted @ 2018-09-26 22:13 eatwhat 阅读(515) 评论(0) 推荐(0) 编辑
摘要:一个一般性的结论 int a[100]={N}//N是一个大于等于0的整数 以上代码只会把a[0]初始化为N,其它内存单元都会被初始化为0 int a[100]={5} 这行代码它只会把a[0]初始化为5,数组中剩下的内存单元都将被初始化为0。 所以int a[100]={0},会把所有的数组中的所 阅读全文
posted @ 2018-09-26 15:22 eatwhat 阅读(157) 评论(0) 推荐(0) 编辑
摘要:对于字符数组而言 char string[10]; 当写下上面的代码的时候,一定要明白它的内涵。 10意思是这个数组有10个元素,即10个内存单元。 这10个内存单元是string[0]~string[9],0到9共10个数并没有string[10],string的定义域在0到9之间的整数,10不在 阅读全文
posted @ 2018-09-26 13:32 eatwhat 阅读(849) 评论(0) 推荐(0) 编辑
摘要:大端小端针对的多字节数据的存储类型的。不包括字符串,字符串是怎么写的就在内存中怎么存的。单个字节的内部位序也没有大端小端说法,怎么写的在内存中就是怎么存的。 多字节存储问题 现在有一个变量int a = 0x45862378; 共有四个字节的数据 0x45 0x86 0x62 0x78 其中0x45 阅读全文
posted @ 2018-09-23 15:30 eatwhat 阅读(179) 评论(0) 推荐(0) 编辑
摘要:我写了一段简单的对比代码并分别用vs2017以release方式编译然后用IDA观察汇编代码,如下图所示: 代码1 int a=5; printf("%d",a) 代码2 volatile int a =5; printf("%d",a); 左边是代码1的汇编代码,右边是代码2的汇编代码。 左边由于 阅读全文
posted @ 2018-09-23 12:01 eatwhat 阅读(1083) 评论(1) 推荐(0) 编辑
摘要:先定义两个概念。 字符集 字符集就是把字符和一串数字(码点)一一对应起来。GB2312,GBK,UNICODE,这些都是字符集。 字符编码 字符编码就是取得字符集中和字符对应的那串数字(字符编码)之后,基于取得的那串数字再生成另外一串数字。utf8,utf16,utf32这些都是字符编码。 字符集和 阅读全文
posted @ 2018-09-23 00:23 eatwhat 阅读(288) 评论(0) 推荐(0) 编辑
摘要:int main() { int isprime = 1; for (int i = 2; i < 101; i++) { isprime = 1;//要确保每次循环都要把这个值设置为1,不然上次循环的isprime会污染本次循环 if (i == 2) { printf("%d\n", i); continue; } for (int j = 2... 阅读全文
posted @ 2018-09-19 23:55 eatwhat 阅读(12114) 评论(0) 推荐(0) 编辑
摘要:有这么一道题目,要求用递归算法 我理解的递归算法是,要求的结果是和前面的结果有关系的,这种都可以用递归,难点是怎么挖掘出递归关系或者怎么想到用递归,这题已经告诉我们用递归算法了,所以难度就降低了。 思路如下: 容易得出an=10*a(n-1) +10; 因为n-1能取到的最小值是1,所以n必须大等于 阅读全文
posted @ 2018-09-19 18:42 eatwhat 阅读(161) 评论(0) 推荐(0) 编辑
摘要:今天又想出了一种方法,感觉这种比较好理解。 阅读全文
posted @ 2018-09-19 00:37 eatwhat 阅读(3620) 评论(0) 推荐(0) 编辑
摘要:iecc.com/linker 阅读全文
posted @ 2018-09-18 14:24 eatwhat 阅读(152) 评论(0) 推荐(0) 编辑
摘要:其实还是比较容易理解的。这就和你去小卖部买东西一样,老板,我想要一袋大米,那老板先得回答有还是没有,还是说我们这没有,去其它地方买去吧,得先给个说法,这个说法就是http相应码,有了http响应码之后,浏览器就能做出判断了,是继续等还是去其它网站看看。 阅读全文
posted @ 2018-09-18 02:59 eatwhat 阅读(158) 评论(0) 推荐(0) 编辑
摘要:以前在分析程序的时候就遇到很多sleep,当时很觉得很奇怪?不直到为什么要调用这个sleep,现在明白了,这种情况一般是应用程序有多个线程,那怎么手动切换线程呢?调用sleep即可。 阅读全文
posted @ 2018-09-18 00:07 eatwhat 阅读(1241) 评论(0) 推荐(0) 编辑
摘要:根据汇编代码可以看到,局部变量的地址是在栈中,而static变量的地址是在全局变量区里面。 阅读全文
posted @ 2018-09-18 00:02 eatwhat 阅读(752) 评论(0) 推荐(0) 编辑
摘要:由这个想到的;https://www.cnblogs.com/nullllun/p/8350178.html 31乘以某个数能不能写成这个数乘以2的次幂 再减去这个数。 用数学语言表达一下就是: 设这个数为x 31*x=x*2^n-x 这个等式是否存在,如果存在,求n的值 那我们计算一下, 31=2 阅读全文
posted @ 2018-09-16 14:14 eatwhat 阅读(1579) 评论(0) 推荐(0) 编辑
摘要:题目: 无线电台的RS制信号报告是由三两个部分组成的: R(Readability) 信号可辨度即清晰度. S(Strength) 信号强度即大小. 其中R位于报告第一位,共分5级,用1—5数字表示. 1 Unreadable 2 Barely readable, occasional words 阅读全文
posted @ 2018-09-15 14:33 eatwhat 阅读(271) 评论(0) 推荐(0) 编辑
摘要:先来看一个没有break的例子: 我们看一下它的汇编代码: 可以看一下,case语句只是被编译成了一个具体的入口地址,但是并没有告诉程序怎么出来,从哪里出来,那么如果没有出口地址,那么程序就会按顺序执行下去,所以case2入口地址处的代码也被执行了。 如果是加了break语句之后就变成下面这样了: 阅读全文
posted @ 2018-09-14 01:00 eatwhat 阅读(1132) 评论(0) 推荐(0) 编辑
摘要:我是怎么想的,我前面学过两个数比大小,比如有三个数,a b c,先比较a和b的大小,然后用那个较大的和c比较就得出最大的那个了。这个求三个数比大小的问题最后变化成 了两个数比大小了。 阅读全文
posted @ 2018-09-14 00:15 eatwhat 阅读(3248) 评论(0) 推荐(0) 编辑
摘要:if(a>6) printf("hello");//语句1 printf("world");//语句2 当a>6的时候,执行的分支语句是语句1,而不是语句1和语句2,虽然结果是语句1和语句2都被执行了,但语句1是再if的那个分支里面,而语句2是干路里面的语句。 为了避免歧义,if语句一定要加括号,即 阅读全文
posted @ 2018-09-13 23:54 eatwhat 阅读(2089) 评论(0) 推荐(0) 编辑
摘要:可能经常会看到错误的if语句示范,比如这样的: if(a=6) { printf("hello"); } if语句块执行的条件是if条件的运算结果不是0则执行if语句块。 a=6这是个赋值运算符,赋值运算符是有返回值的。 可以看到a=8返回的值是8。 所以a=6返回的是6,6不是0所以执行if语句块 阅读全文
posted @ 2018-09-13 23:33 eatwhat 阅读(2353) 评论(0) 推荐(0) 编辑
摘要:我的思路是这样的:比如12和16这两个数。先理解一下概念,什么叫最大公约数。就是12有很多个因数,16也有很多个因数,这两堆因数中有一些重合的因数,在这些重合的因数中找到那个最大的。那么最大公约数一定是两个数的公约数,且最大公约数一定再12的因数中寻找的。OK,我们先对12求除所有的因数,那么需要一 阅读全文
posted @ 2018-09-11 18:03 eatwhat 阅读(2631) 评论(0) 推荐(0) 编辑
摘要:其实这个题目和上面那个是一样的 update 2018.10.2 昨天看到一个题目和这个类似。里面不用if判断。 阅读全文
posted @ 2018-09-11 00:36 eatwhat 阅读(953) 评论(0) 推荐(0) 编辑
摘要:给定一个n求这个分式的和。 阅读全文
posted @ 2018-09-11 00:23 eatwhat 阅读(950) 评论(0) 推荐(0) 编辑
摘要:比如 for() { for() { break; } } 那个break语句只是跳出它所在的那个for循环,不会把最外面的for循环都跳出去。 阅读全文
posted @ 2018-09-10 23:56 eatwhat 阅读(180) 评论(0) 推荐(0) 编辑
摘要:我这个其实是有种数学的感觉,没有写程序的感觉,哈哈。 update:2018.9.29 感觉这种好理解一点。 阅读全文
posted @ 2018-09-10 23:48 eatwhat 阅读(1532) 评论(0) 推荐(0) 编辑
摘要:其实感觉for循环没有while循环那么直白好理解。 for(i=0;i<n;i++) { dosth(); } i=0是i的初始值。 i<n是循环进行的条件。 i++是每次循环要做的事情。 dosth()也是每次循环要做的事情。 for(i=0;i<n;i++,dosth()) { //不能少了这 阅读全文
posted @ 2018-09-10 20:40 eatwhat 阅读(685) 评论(0) 推荐(0) 编辑
摘要:这题的要求是这样的: 这题我没做出来,我大概思路是这样的,根据输入的数字,把这个数字的每一位都分离出来,然后判断奇数还是偶数,再判断序是奇数还是偶数,最后两个奇偶性比较,输出1还是0,这个输出的1和0该怎么保存,以及最后怎么转化为十进制呢? 卡住了。 2018.9.17更新 最近又想了一下,做出来了 阅读全文
posted @ 2018-09-10 17:59 eatwhat 阅读(659) 评论(0) 推荐(0) 编辑
摘要:怎么考虑这个问题。 首先先确定肯定是需要一个变量保存输入的数据的,我们叫它input,最后结果要的是个数,所以需要另外两个变量来保存奇数的个数和偶数的个数。 int input int countJ int cuntO 紧接着肯定需要一个循环,我们先考虑循环体内部每次要执行的东西。 { 判断这个数是 阅读全文
posted @ 2018-09-07 22:21 eatwhat 阅读(5955) 评论(0) 推荐(0) 编辑
摘要:如果给option的一个值是2的话,那么程序会判断option是否等于0 ,再判断option是否等于1 最后再判断option等于2,多执行了两个判断,当然了,如果直接把option==3的判断放在最前面,那么就执行一次判断就可以了。 把多级elseif改成switch case的话,程序执行的时 阅读全文
posted @ 2018-09-07 16:40 eatwhat 阅读(760) 评论(0) 推荐(0) 编辑
摘要:题目是这样的: 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小时小于10,则没有千位部分;如果小时是0,则没有百位部分;如果分小于10分,需要保留十位上的0。如112 阅读全文
posted @ 2018-09-07 13:51 eatwhat 阅读(6894) 评论(1) 推荐(0) 编辑
摘要:回想现实生活中,我们会遇到这样的情况,如果下雨了就带伞上班,如果没下雨就不带伞上班,这是很正常的逻辑。程序是解决生活中的问题的,那么自然在程序中也需要这样的判断,当满足某个条件的时候做一件事情,这种东西就叫if语句。 看下面这个例子: int a=5; int b=3; if(a>b) { prin 阅读全文
posted @ 2018-09-06 23:59 eatwhat 阅读(1698) 评论(0) 推荐(0) 编辑
摘要:题目:给定一个正的三位整数,比如123,输出321,但如果是700,输出必须是7不能是007 思路是怎么样的呢? 假设这个正三位数是m,它的百分位是c,十分位是b,个位是a,那么就存在下面的等式。 m=c*100+b*10+a*1 现在已知了m,只要知道c、b、a这三个数的值,那么我们直接按abc的 阅读全文
posted @ 2018-09-06 23:15 eatwhat 阅读(4213) 评论(0) 推荐(0) 编辑
摘要:计算时间差有两种,一种是把时间都转化为分钟数,一种是把时间都转化为小时,后者是会用到除法所以不可避免产生浮点数,所以我们选择转化为分钟数来计算。 //题目:给定两个时间点计算它们的时间差,比如,1:50 和3:21 //定义四个变量来保存输入的时间 //默认a时间小于b时间 int aH=0; in 阅读全文
posted @ 2018-09-06 21:06 eatwhat 阅读(4230) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/xkfz007/articles/2590472.html 阅读全文
posted @ 2018-09-06 20:55 eatwhat 阅读(519) 评论(0) 推荐(0) 编辑
摘要:int a =0; int b =0; scanf("%d %d",&,&b); 上面这种和下面这种哪种对? int a =0; int b =0; scanf("%d,%d",&,&b); 一个格式是空格,一个格式是逗号,都是对的,两种写法都是规定了变量和变量之间是怎么区分开的,有人习惯用空格表示 阅读全文
posted @ 2018-09-06 01:01 eatwhat 阅读(215) 评论(0) 推荐(0) 编辑
摘要:在c语言的编程过程中经常会遇到有常数参加运算的运算,比如这种。 int a=100*b; 这个100我们叫常数或者叫常量,但是程序中我们不推荐这种直接写常数的方法,有两个缺点。 第一是程序可读性差。 a=100*b 直接给我这个代码,我自己都不知道是什么意思,100代表什么意思呢?别人可能根本就都不 阅读全文
posted @ 2018-09-06 00:38 eatwhat 阅读(474) 评论(0) 推荐(0) 编辑
摘要:在学习了简单的输入输出功能和了解了一些基本的运算符号之后我们可以试着做一个非常简单的计算器。 比如说想计算23+65 输入以下代码就可以了。 printf("23+65=%d",23+65); 如果想计算100+89,就需要把上面式子中的23+65改成100+89,每计算一次就需要改动一次程序,再编 阅读全文
posted @ 2018-09-05 22:56 eatwhat 阅读(1405) 评论(0) 推荐(0) 编辑