09 2011 档案

摘要:一直觉得printf很强大,今天又碰到想要格式输出,但是宽度可变怎么办?先介绍已知指定宽度的输出。char test[] = "manipulations test";%s :printf("%s", test); //这是最普通的用法%ms :printf("%5s", test) //输出的字符控制在m个屏幕像素(m=5),但此字符串长度大于给定参数,则全部输出。若长度不够,则默认右对齐。%-ms :printf("%-5s", test) //与上相同,但是左对齐%m.ns :printf("%10 阅读全文
posted @ 2011-09-19 23:13 alex4814 阅读(1452) 评论(0) 推荐(0) 编辑
摘要:當題目涉及到求最大最小值時,最初的比較數字就應當設置爲INT_MAX或INT_MIN,更爲安全。<limits.h>中有INT_MAX和INT_MIN的宏定義可直接使用。或者自行定義宏#define INT_MAX 0x7fffffff#define INT_MIN 0x80000000INT_MAX = 2147483647INT_MIN = -2147483648這僅試用在没有限制範圍的情况下使用。否則同樣會出現其他連鎖的錯誤。 阅读全文
posted @ 2011-09-12 18:48 alex4814 阅读(39600) 评论(0) 推荐(2) 编辑
摘要:约瑟夫问题:用数学方法解的时候需要注意应当从0开始编号,因为取余会等到0解。实质是一个递推,n个人中最终存活下来的序号与n-1个人中存活的人的序号有一个递推关系式。分析:假设除去第k个人。0, 1, 2, 3, ..., k-2, k-1, k, ..., n-1 //original sequence (1)0, 1, 2, 3, ..., k-2, , k, ..., n-1 //get rid of kth person (2)k, k+1, ..., n-1, 0, 1, ..., k-2 //rearrange the sequence (3)0, 1, ..... 阅读全文
posted @ 2011-09-11 19:33 alex4814 阅读(1047) 评论(0) 推荐(0) 编辑
摘要:循环移位区别于一般移位的是移位时没有数位的丢失。循环左移时,用从左边移出的位填充字的右端。循环右移时,用从右边移出的位填充字的左侧。这种情况在系统程序中时有使用,在一些控制程序中用得也不少。例如:a = 01111011,循环左移2位的正确结果是: b=11101101b = a >> (8 - 2); //用来得到正常左移丢失的位和循环移位后其正确位置 //b=00000001;a = a << 2; //a = 11101100a = a | b; //a = 11101101如果不是用中间变量 a=(a>>(8-2))|(a<<2)通用:总 阅读全文
posted @ 2011-09-08 22:12 alex4814 阅读(9168) 评论(1) 推荐(3) 编辑