摘要: 1、使用多条命令 多个命令一起运行,只需要输入到同一行中,中间用分号隔开。 ex: data ; who 2、创建脚本文件 (1)以#!/bin/bash为第一行 (2)#加注释。 (3)每行以回车结束 (4)chmod +x 对脚本文件赋执行权 (5)带路径进行调用 3、显示消息 在shell脚本中需要显示额外信息的任何位置都可以添加echo语句 4、使用变量 (1)环境变量 (... 阅读全文
posted @ 2010-05-25 22:59 红脸书生 阅读(2164) 评论(0) 推荐(1) 编辑
摘要: 一、基本概念 抽象不应该依赖细节,细节应该依赖抽象。即针对接口编程,不要对实现编程。 A:高层模块不能依赖低层模块,两者都应依赖抽象。 B:抽象不应该依赖细节,细节应该依赖抽象。 二、里氏代换原则(LSP) 子类型必须能够替换掉它们的父类型 解释:一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。 也就是说,在软件里面,把父类都替换成它的子... 阅读全文
posted @ 2010-05-25 20:58 红脸书生 阅读(840) 评论(1) 推荐(0) 编辑
摘要: 一、基本概念 OCP: 软件实体(类、模块、函数等)应该可以扩展,但是不可修改。 解释:即对于扩展是开放的,对于修改是封闭的。 二、实际技巧 实际上,无论模式多么的‘封闭’,都会存在一些无法对之封闭的变化,既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。 即:当变化发生时,我们就创建抽象来隔离以后发... 阅读全文
posted @ 2010-05-25 20:11 红脸书生 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 就一个类而言,应该仅有一个引起它变化的原因。   如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责能力。这种耦合会导制脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。 软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。 如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。 阅读全文
posted @ 2010-05-25 20:07 红脸书生 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 一个3位数若等于各位的立方和,即是水仙花数 源码如下: 阅读全文
posted @ 2010-05-25 10:22 红脸书生 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 若x mod 2 =1, x mod 3 = 2, x mod 5 = 4, x mod 6 = 5, x mod 7 =0;求最小解 源码如下: 阅读全文
posted @ 2010-05-25 10:18 红脸书生 阅读(773) 评论(0) 推荐(0) 编辑
摘要: 一、题目 新郎A,B,C。新娘X,Y,Z。 A说他将和X结婚,X说她将和C结婚,C说他将和Z结婚。这三句全是假的。请问真正是怎么配对‘ 二、分析 可以用穷举法,一共3+2+1种可能方案。 A,B,C位置不变,不断调换X,Y,Z的位置。 三、源码 阅读全文
posted @ 2010-05-25 10:11 红脸书生 阅读(946) 评论(0) 推荐(0) 编辑
摘要: 1: #include <stdio.h> 2: 3: int Reverse(int i) 4: { 5: int r = 0; 6: while (i) 7: { 8: r = r * 10 + i % 10; 9: i = i / 10; 10: } 11: return r; 12: } 13: 14: int fun(int i, int j) 15: { 16:... 阅读全文
posted @ 2010-05-25 09:56 红脸书生 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 1: #include <string.h> 2: #include <stdio.h> 3: 4: int IsCircle(int n); 5: int Reverse(int i); 6: 7: int main() 8: { 9: int n; 10: printf("input a number\n"); 11: scanf("%d", &n); 1... 阅读全文
posted @ 2010-05-25 09:42 红脸书生 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 1: #include <string.h> 2: #include <stdio.h> 3: 4: int Accord(int i, int j, int k); 5: 6: int main() 7: { 8: int i, j, k; 9: for (i=0; i<=100; i++) 10: for (j=0; j<=100; j++) 11: f... 阅读全文
posted @ 2010-05-25 09:36 红脸书生 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 1: #include <stdio.h> 2: 3: int main() 4: { 5: int red, yellow, green; 6: for (red=0; red<=3; ++red) 7: for (yellow=0; yellow<=3; ++yellow) 8: for (green=2; green<=6; ++green) 9: if(red... 阅读全文
posted @ 2010-05-25 09:32 红脸书生 阅读(612) 评论(0) 推荐(0) 编辑
摘要: 一、分析 可在较小范围内使用枚举法,验证每一个偶数是否能表示成为两个素数的和。 二、源码 阅读全文
posted @ 2010-05-25 09:27 红脸书生 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 1: #include <stdio.h> 2: 3: int Gcd(int a, int b) 4: { 5: int min; 6: if (a <= 0 || b <= 0) 7: return -1; 8: if (a > b) 9: min = b; 10: else 11: min = a; 12: 13: while (min) 14: { ... 阅读全文
posted @ 2010-05-25 09:11 红脸书生 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 1: #include <stdio.h> 2: #include <math.h> 3: 4: int main() 5: { 6: double sum = 0; 7: int i; 8: for (i = 1; i <= 64; ++i) 9: { 10: sum += pow(2, i-1); 11: } 12: printf("the sum is \... 阅读全文
posted @ 2010-05-25 09:05 红脸书生 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 一、分析 (1)首先分析是否为闰年,若为闰年则2月为29天 (2)其次计算之前的几个月一共有多少天 (3)最终加上该天在月中是多少天 二、源码 阅读全文
posted @ 2010-05-25 08:59 红脸书生 阅读(3098) 评论(0) 推荐(0) 编辑
摘要: 源码: 阅读全文
posted @ 2010-05-25 08:52 红脸书生 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 典型的递归求解程序 阅读全文
posted @ 2010-05-25 08:47 红脸书生 阅读(1403) 评论(0) 推荐(0) 编辑
摘要: 一、问题分析 在所在行中最大,在所在列中最小。所以一个矩阵最多只有一个鞍点。 所以可以逐行寻找鞍点。先找出某行中最大的元素,再将该元素与同列中其他元素进行比较,若该元素同时是所在列中最小的元素,则它就是鞍点。 二、源码 阅读全文
posted @ 2010-05-25 08:37 红脸书生 阅读(4458) 评论(0) 推荐(0) 编辑
摘要: 1、多语句宏的书写 通常的目标是:书写一个像包含一个单独的函数调用语句的宏。 这意味着:调用者需要提供最终的分号,而宏体则不需要。 因此宏体不能为简单的括弧包围的复合语句,因为如果这样,调用的时候就会发生语法错(明显是一个单独语句,但却多了一个分号)。每行的最后用\连接 2、sizeof不能用于#if预编译器指令中,因为此时还未对类型名称作解析 3、m4工具是用于多用途的预处理器 4、参数个... 阅读全文
posted @ 2010-05-25 00:53 红脸书生 阅读(547) 评论(0) 推荐(0) 编辑
摘要: 1、C语言中没有定义布尔变量,可以自己用宏去定义TRUE,FALSE为1,0。或者使用枚举enum bool{false, true}; 2、一般不显示比较TRUE,FALSE 3、当P为指针,if(p)合法 阅读全文
posted @ 2010-05-25 00:53 红脸书生 阅读(957) 评论(0) 推荐(0) 编辑