xin's blog

技术笔记
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  C

摘要:使用的是The Art And Science Of C书里的字符串库。//// main.c// TheArtAndScienceOfC// Created by dai changxin on 12-1-11.//#include <stdio.h>#include "genlib.h"#include "simpio.h"#include "strlib.h"#define LINE_NUMBER 8int main (int argc, const char * argv[]){ //最大长度 int lineWi 阅读全文

posted @ 2012-07-01 19:28 dcx 阅读(186) 评论(0) 推荐(0)

摘要:最近C的学习又给耽搁了, 写的代码远远跟不上看的速度... 今天写的是Pascal三角形, 也就是从小到大循环打印排列组合:/* Function Prototypes */int Combinations(int n, int k);int Factorial(int n);void PrintSpace(int spaceNumber);/* Main Program */int main (int argc, const char * argv[]){ int n = GetInteger(); int k = 0; while (n - k) { ... 阅读全文

posted @ 2012-07-01 19:13 dcx 阅读(179) 评论(0) 推荐(0)

摘要:假设两个数x y, 计算int r = x %y; 如果r是0, 则最大公约数就是y. 如果r!=0, 那么将x设为原来y的值, y换成r的值, 继续刚才的步骤, 因为欧几里德认为, r和y的最大公约数 与 x和y的最大公约数是一样的. 代码: #include <stdio.h>#include "genlib.h"#include "simpio.h"int GCD(int x, int y);int main(){ int x, y; printf("请输入数字x: \n"); x = GetInteger(); p 阅读全文

posted @ 2012-07-01 19:11 dcx 阅读(114) 评论(0) 推荐(0)

摘要:人从房间的一端走到另一端, 过程其实是每次都走剩下路程的一半, 这样无限循环下去, 按理来说是无解的. 但是看公式: s = 1/2 + 1/4 + 1/8 + ... 两边同时乘以2: 2s = 1 + 1/2 + 1/4 + 1/8 + ... 第二个公式里有一项就是公式一, 拿公式一来替换得到: 2s = 1 + s 得出 s = 1; 神奇吧. 在程序里这样写的话会死循环, 因为没有终止的条件. 但是每个语言都是有精度的, 如果将当前计算相加的结果精度已经达到再加上更小粒度的数据都没有意义的时候, 那么也是一个判断跳出的条件: s == s + term; 这里的term即使被循环了n 阅读全文

posted @ 2012-07-01 19:10 dcx 阅读(612) 评论(0) 推荐(0)

摘要:求n的平方根, 则先拿n与n/n的值的中间量double g = (n + n/n)/2作为平方根测试, 发现不合适, 再缩小范围g = (x/g + g)/2, 测试直到一个接近可以接受的值.#include <stdio.h>#include "genlib.h"#include "simpio.h"bool Equal(double x, double y);double Sqrt(double x);int main(){ printf("输入数字n :\n"); int n = GetInteger(); pri 阅读全文

posted @ 2012-07-01 19:10 dcx 阅读(222) 评论(0) 推荐(0)