简明现代魔法 -> C/C++

C 程序设计:折半查找

折半查找是很常见的一个算法

有一个数组 v 已经按升序排列了,数组 v 有 n=20 个元素。数组中有个元素 x,如何知道 x 位于该数组的第几位呢?思路很简单:首先将输入值 x 与数组 v 的中间元素比较,如果 x 小于中间的元素,则将 high 值设为 中间元素-1,同理,若 x 大于中间元素,则将中间元素 + 1作为 low,再在low 与 high之间进行查找。

发布于 2010-07-15 分类:cpp

趣味算法:兔子产子问题

斐波那契(Fibonacci)数列的运用

假定你有一雄一雌一对刚出生的兔子,它们在长到一个月大小时开始交配,在第二月结束时,雌兔子产下另一对兔子,过了一个月后它们也开始繁殖,如此这般持续下去。每只雌兔在开始繁殖时每月都产下一对兔子,假定没有兔子死亡,在一年后总共会有多少对兔子? 在一月底,最初的一对兔子交配,但是还只有1对兔子;

发布于 2010-05-27 分类:cpp

趣味算法:猴子吃桃问题

倒推的思想

猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。此题用倒推的办法,所以注意循环结束的条件。多数情况下用循环为递增方式,本题中用递减方式,因此是: i >= 1 。

发布于 2010-05-26 分类:cpp

C 语言的变量存储类型

变量存储类型用来说明变量的作用范围

C语言的变量存储类型有:自动类、寄存器类、静态类和外部类。局部变量是指在函数内部说明的变量(有时也称为自动变量),用关键字auto进行说明。 所有的非全程变量都被认为是局部变量,所以auto实际上从来不用。

发布于 2010-04-10 分类:cpp

C 程序设计:字符数组

char[]数组的使用

字符数组是 C 语言中最常用的数组类型。我们需要了解操作该数组的一些函数。问题:编写一个程序,该程序读入一组文本行,并把最长的文本行打印出来。可以看出,程序分成几个功能部分:读入新行,测试读入的行(长度等),保存该行等。

发布于 2010-02-24 分类:cpp

C 程序设计:参数与传值调用

参数的使用

在 C 语言中,所有函数参数都是值传递的。也就是说,传递给函数的参数是存放在临时变量中。被调函数不能直接修改主调函数中变量的值,而只能够修改其私有的临时变量的值。传值调用的利大于弊,在被调函数中,参数可以看作是便于初始化的局部变量,因此额外使用的变量会更少,这样程序可以更紧凑简洁。

发布于 2010-02-21 分类:cpp

C 程序设计:使用函数

C函数的使用例子

问题:编写一个求幂函数 power(m, n),用于计算整数 m 的 n 次幂,其中 n 是正整数。对函数调用 power(2, 5) 来说,其结果为 32。函数为计算的封装提供了一种简便的方法,以后使用函数的时候不需要考虑它是如何实现的。

发布于 2010-02-20 分类:cpp

C 程序设计:使用数组

数组使用介绍

问题:编写一个程序,以统计各个数字、空白符(包括空格符、制表符及换行符)、以及所有其它字符出现的次数。所有的输入字符可以分为12类,因此可以用一个数组存放各个数字出现的次数,这样比使用10个独立的变量更方便。

发布于 2010-02-19 分类:cpp

C 程序设计:单词计数

字符的输入输出

这里的单词定义比较宽松,任何不包括空格、制表符、换行符的连续的字符序列,就叫单词。下面这段程序虽然短小,但是它可是 UNIX 操作系统中 wc 程序的骨干部分,一个操作系统也是由这么一些小程序架构而成。

发布于 2010-02-18 分类:cpp

C 程序设计:行计数

其实就是统计换行符的个数

问题:编写程序统计输入中的行数。标准库保证输入文本流以行序列的形式出现,每一行均以换行符结束。所以,统计行数等价于统计换行符的个数。

发布于 2010-02-17 分类:cpp

C 程序设计:字符统计

统计输入字符的个数

此字符统计程序使用 long 类型的变量存放计数值,为什么不使用 int 类型的变量呢?长整型 long 至少要占用 32 位存储单元。在某些机器上,int 类型的值可能只有 16 位存储单元的长度(即最大值为 32767),这样的话,相当小的输入都有可能使 int 类型的计数变量溢出。转换说明 %ld 则告诉 printf() 函数其对应的参数是 long 整型。

发布于 2010-02-16 分类:cpp

C 程序设计:验证与打印 EOF

了解EOF的更多

程序会读取字符,当有字符可读时,getchar() 不会返回文件结束符(EOF),所以 getchar() != EOF 的取值为真,变量 c 将被赋值为 1。当程序遇到文件结束符时,表达式取值为假,此时变量将被赋值为 0,程序将运行结束。

发布于 2010-02-15 分类:cpp

C 程序设计:字符的输入输出

将输入打印到输出

Standard Library 提供了一次读/写一个字符的函数,其中最简单的是 getchar() 和 putchar()。每次调用时,getchar() 从文本流中读入下一个输入字符,并将其作为结果返回。举个例子吧:

发布于 2010-02-14 分类:cpp

C 程序设计:符号常量

给常量定义值

我们有一种更好的方法,使得以后修改程序会更方便,那就是用符号常量。#define 指令可以把符号常量定义为一个特定的字符串,它的用法是这样的:#define 名字 替换文本; 在这条指令定义之后,所有名字都会用替换文本来代替。

发布于 2010-02-13 分类:cpp

C 程序设计:变量与算术表达式

C语言程序设计的基础

在 C 语言中,所有变量都必须先声名后使用。声名一般都要放在函数起始处,在任何可执行语句之前。声名的主要用途就是说明变量的属性,它由一个类型名和一个变量表组成……

发布于 2010-02-12 分类:cpp
 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们