C,是一种信仰

随笔分类 -  算法竞赛

摘要:收到群里一位同学的代码,忍不住点评一下。也请各位指正。 话说《算法竞赛入门经典》P50有这样一道题,我给出如下比较详细的描述说明: 习题3-2,单词的长度(word).c     输入若干个单词,输出他们的平均长度。单词只包含大写字母和小写字母,用一个或多个空格隔开。 如题所述,意味着用户输入的字符只有2种可能:字母、或是空格——连回车都不会... 阅读全文
posted @ 2011-02-12 23:13 胖乎乎的王老师 阅读(2716) 评论(12) 推荐(0)
摘要:  问题描述:     有n盏灯,编号为1~n。进行如下活动过程:     第1个人把所有的灯打开;     第2个人把所有编号为2的倍数的灯关掉;     第3个人把所有编号为3的倍数的灯打开;     ……     以此类推。     一共有k个人参与了上述活动。     问:最后有哪些灯是开着的? 输入:n和k。k=n=1000。假设用户输入的数据都是合法的。 输出:开着的灯的编号。各... 阅读全文
posted @ 2011-02-02 17:16 胖乎乎的王老师 阅读(666) 评论(0) 推荐(0)
摘要:作者:fzd19zx@gmail.com 2011年2月1日 21:09:28 本题,是《算法竞赛入门经典》(刘汝佳)的一道例题。(P35,例题3-2) 题目描述如下:(我改进了一点点,使之叙述得更加严密。) 问题描述: 在n*n的方阵里填入1,2,3,...,n*n,要求填成蛇形。 1=n=19 由于在标准的命令行界面下,每个屏幕大约只有25行,所以不必让n具有特别大的值。 当... 阅读全文
posted @ 2011-02-01 21:16 胖乎乎的王老师 阅读(1294) 评论(0) 推荐(0)
摘要:编写C的源代码,有很多种办法。很多人在Visual C++的集成编译环境下写代码,当然可以。可是我觉得,Visual C++实在是太大了,光启动就要好几秒钟。作为算法竞赛来说,实在是有点儿“高射炮打蚊子”的感觉。如果用记事本来写C的源代码,当然也可以,可是写出来的都是“白纸黑字”不那么美观。我写C源代码的时候,用的是Notepad2,你看:她的特点和优势在于:标题栏有源代码文件名和所在路径 左侧有行号显示 源代码有颜色提示关键字啊、数值啊、字符串啊什么的,很醒目 当前行有淡黄色的背景提示 还可以缩放字符大小、加书签啊什么的,很多功能 Notepad2是个免费的软件!(实在是酷毙了!)可以从这里 阅读全文
posted @ 2011-01-22 20:54 胖乎乎的王老师 阅读(2936) 评论(9) 推荐(0)
摘要:想要编写C代码,就必须得有一个编译环境。简单地说,程序从我们的大脑到实现,要经过一下过程: 显然,我们的最终目标是4。但是我们所能操纵的是1。在1中,我们用各种各样的编辑软件,写我们的C语言源代码,并将其保存为.c结尾的源文件。形如: 里面的内容形如: 接下来,想要把这部分源代码变成.exe的可执行程序,是非常困难的。幸运的是,我们有一整套的编译系统,可以帮助我们完全自动化地完成这部分工作。TCC就是这样的一个编译系统。当然Visual C++ 6.0也是这样的一个编译系统。所以我们经常说“你用的是什么编译器?”“哦,我用的是VC++ 6.0。”讲的就是所用的编译系统。真正的编译系统其实会做两 阅读全文
posted @ 2011-01-22 20:54 胖乎乎的王老师 阅读(2641) 评论(3) 推荐(1)
摘要:TCC是一个超小、超快的标准C语言编译器。她可以从这里(http://bellard.org/tcc/)下载到;注意,要下载http://download.savannah.nongnu.org/releases/tinycc/tcc-0.9.25-win32-bin.zip和notepad2一样,TCC也是免费的!(再一次酷毙了!!!)下载好之后,解压到自己的某个文件夹里面: 我们所需的编译系统,就都在tcc这个文件夹里面。TCC的使用方法是这样的:http://bellard.org/tcc/tcc-doc.html 英文的?当然,早就告诉你要好好学英语了。举个例子说明TCC的用法:首先我 阅读全文
posted @ 2011-01-22 20:53 胖乎乎的王老师 阅读(14068) 评论(15) 推荐(2)
摘要:题目: 一球从100m高度自由落下,每次落地后反弹回原高度的一半,再落下。求它在第10次触地时,在空中共经过了多少m?第十次反弹多高?结果:299.609375 0.097656策略:用循环语句模拟每次下落/弹起的过程 有位同学给我寄来了下面的代码: 我试了一下,tcc,输入100,输出:299.609375。尽管结果是正确的,但还存在这样几个问题:题目还要求计算“第10次触地后反弹多高?”这里... 阅读全文
posted @ 2011-01-21 22:00 胖乎乎的王老师 阅读(669) 评论(0) 推荐(0)
摘要:当我们在画数组的时候,往往是把数组的元素画得一个挨一个,紧挨在一起的。 实际情况究竟是否如此呢?需要给出证明。 为了说明我们的证明,先要明确: 两个相关的概念:“变量的地址”和“变量的值” “求地址”的运算符 看下图,说明了“变量的地址”和“变量的值”之间的区别: 你可能会奇怪,为什么相邻的2个内存单元之间地址间隔4?原因如下: 地址的单位是字节(Byte) 我们假设每个内存单元存储的都是int... 阅读全文
posted @ 2011-01-21 21:57 胖乎乎的王老师 阅读(809) 评论(0) 推荐(0)
摘要:首先:ANSI C99标准中并没有64位整数类型。其次,许多实际的编译器,都实现了对64位整数类型的支持。 具体的分析,参见:http://blog.csdn.net/lychee007/archive/2010/04/04/5449237.aspx 其中关键是这个表格: 变量定义 输出方式 gcc(mingw32) g++(mingw32) gcc(linux i386) g++(linux i... 阅读全文
posted @ 2011-01-21 21:00 胖乎乎的王老师 阅读(2333) 评论(1) 推荐(0)
摘要:题目: 输入一个100分制的成绩score(整数),要求输出对应的等级:A: 90分以上,B:80~89,C:70~79,D:60~69,E:60以下。例如:输入90,输出A.。 有同学给出了下面的代码,该代码可以正常工作。但是,存在什么问题呢? 问题在于,没有采用正确的缩进方式。这样一来,第九行的else对应的是第八行的if还是第六行的if呢?正确的理解是:第九行的else对应第八行的if,但是... 阅读全文
posted @ 2011-01-21 20:58 胖乎乎的王老师 阅读(873) 评论(0) 推荐(2)
摘要:在计算机中,我们使用二进制数来表达各种信息。在计算机的内部,只能识别和处理二进制的数据。但是,这并不影响计算机表达其他进制的数据。 请阅读: 计算机的记数系统(很系统,也比较学术化,不见得很通俗):http://zh.wikipedia.org/zh-cn/%E8%AE%B0%E6%95%B0%E7%B3%BB%E7%BB%9F 详细介绍如何在各种进制之间转换: (基础知识,字大图美,最后还介绍... 阅读全文
posted @ 2011-01-10 13:07 胖乎乎的王老师 阅读(572) 评论(0) 推荐(0)

Email 联系我:fzd19zx@qq.com