博文

c语言(九格游戏100多行)(2006-06-16 17:55:00)

摘要:*很多人都觉得编游戏很高深...其实不然...以下是我初学C时写个一个九格游戏涉及的知识只有函数,各种流程控制和从老师那里问来的几个非常有用的函数. 当然,当时我连一点图形的知识都没有. 我只想说明一个问题:不要觉得你C语言学得不够多,只是,你没有充分利用你所学到的*/
#include
#include /*使用其中的int random(int a):
产生一个在0到a-1之间的整数
和 randomize():复位随机发生器*/
#include /*使用其中的gotoxy(int x,int y):
把光标移动到屏幕的x(1~80),y(1~25/50)处*/
/*和clrscr():清屏*/
int num[]={1,2,3,4,5,6,7,8,0}; /*方块的数字*/ main(){
char key=0; /*键盘码*/
int pos; /*九格中,空格的位置*/
clrscr(); /*清屏*/
randomize(); /*初始化随机发生器*/
newGame();
for(;;){
key=getch(); /*获得键盘输入*/
if(key==0) continue;
pos=GetTheNull(); /*得到空格*/
switch(key){ /*测试按键*/
case 72: /*按下*/
if(pos<=5) change(pos,pos+3);
break;
case 80: /*按上*/
if(pos>=3) change(pos,pos-3);
break;
case 77: /*按左*/
if(pos%3!=0) change(pos,pos-1);
break;
case 75: /*按右*/
if(pos%3!=2) change(pos,pos+1);
break;
case 110: /*按下‘n’新建游戏*/
newGame();
}
update(); /*更新*/
if(isSuccess()){ /*看是否游戏成功......

阅读全文(4775) | 评论:2

关于汉诺塔问题的最终解决(2006-06-16 17:55:00)

摘要:问题的提出:约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到右边的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。
*问题分析与算法设计
这是一个著名的问题,几乎所有的教材上都有这个问题。由于条件是一次只能移动一个盘,且不允许大盘放在小盘上面,所以64个盘的移动次数是:
18,446,744,073,709,551,615
这是一个天文数字,若每一微秒可能计算(并不输出)一次移动,那么也需要几乎一百万年。我们仅能找出问题的解决方法并解决较小N值时的汉诺塔,但很难用计算机解决64层的汉诺塔。
分析问题,找出移动盘子的正确算法。
首先考虑a杆下面的盘子而非杆上最上面的盘子,于是任务变成了:
*将上面的63个盘子移到b杆上;
*将a杆上剩下的盘子移到c杆上;
*将b杆上的全部盘子移到c杆上。
将这个过程继续下去,就是要先完成移动63个盘子、62个盘子、61个盘子....的工作。
为了更清楚地描述算法,可以定义一个函数movedisc(n,a,b,c)。该函数的功能是:将N个盘子从A杆上借助C杆移动到B杆上。这样移动N个盘子的工作就可以按照以下过程进行:
1) movedisc(n-1,a,c,b);
2) 将一个盘子从a移动到b上;
3) movedisc(n-1,c,b,a);
重复以上过程,直到将全部的盘子移动到位时为止。
*程序与程序注释
#include<stdio.h>
void movedisc(unsigned n,char fromneedle,char toneedle,char usingneedle);
int i=0;
void main()
{
unsigned n;
printf("please enter the number of disc:");
scanf("%d",&n); /*输入N值*/
printf("\tneedle:\ta\t b\t c\n");
movedisc(n,'a','c','b'); /*从A上借助B将N个盘子移动到C......

阅读全文(13097) | 评论:0

一个女生的2006世界杯十大最新发现(不许笑出声来) (2006-06-15 18:14:00)

摘要:1.今天看了赛程我才发现竟然没有中国队,他们为什么没邀请我们?小样,没有中国队也敢叫世界杯?  2.我一直以为小罗是巴塞罗那队的,看了球员名单才发现小罗是巴西队的!  3.我认为美国队的乔丹最厉害,可我发现他连美国队的替补大名单都没进去!  4.我发现他们老是安排在凌晨3点比赛,难道他们不知道黄金时段能提高收视率吗?  5.好多球员来自意大利和西班牙的甲级球队,为什么中国的超级联赛球队没有球员进世界杯呢?郁闷。  6.上次时装发布会,那个叫贝克汉姆的男模都能成英国的当家球星,可想而知世界杯的水平有多烂了。  7.世界杯原来是四年一次,我还以为和奥运会一样是两年一次呢。  8.我还发现每队都有一人胳膊上缠着绷带,带伤坚持上场,实在撑不下去了,就在下场前把绷带给另一个伤员缠上。  9.我发现每当进球后,进球的队员就会撒丫子往前跑,可能是他怕对方守门员揍他吧。  10.看了那么多场球,我发现一个最有趣的规律,那就是裁判决不会在一场比赛中给同一个队员亮超过三张黄牌!所以,别怕黄牌,裁判只要不红牌把你罚下,你可劲犯规就行   ......

阅读全文(3342) | 评论:0

面试的27个经典问题和回答(2006-06-11 14:52:00)

摘要:      1、我们为什么要雇请你呢?   有的面试只有这么一个问题 。   2、你认为自己最大的弱点是什么?   绝对不要自作聪明地回答"我最大的缺点是过于追求完美",有的人以为这样回答会显得自己比较出色,但事实上,他已经岌芨可危了。   3、你最喜欢的大学课程是什么?为什么?   说和你要应聘的职位相关的课程吧,表现一下自己的热诚没有什么坏处。   4、你最不喜欢的大学课程是什么?为什么?   "我不得不说是我们大学的主修课程,虽然我知道他们只是例行一下公事,但课堂上死气沉沉,老师和学生都只不过想熬完这个学期"。   5、你在大学期间最喜欢的老师是谁?   我一向的回答都是(事实上也的确是):教我们广告营销的教授,他能使课堂充满生气。通过实例让学生把知识和现实紧密结合,而不是死读书本,我想我从他身上得到的最多。   6、你能为我们公司带来什么呢?   假如你可以的话,试着告诉他们你可以减低他们的费用——"我已经接受过MicrosoftAccess和Word的培训,立刻就可以上岗工作"(他们在那边可能想:Access培训要花$540Word要花$445,这小子能为我们省下$1000的培训费用呢。   7、最能概括你自己的三个词是什么?   我经常用的三个词是:适应能力强,有责任心和做事有始终,结合具体例子向主考官解释,使他们觉得你具有发展潜力。   8、你为什么来应聘这份工作?   "我来应聘是因为我相信自己能为公司作出贡献,我在这个领域的经验很少人比得上,而且我的适应能力使我确信我能把职责带上一个新的台阶"。   9、你对加班有什么看法?   尽量诚实——如果你说了"是"而实际上却不想,那么你会被人一直盯住。   10、你对我们公司有什么认识?   说几件你知道的事,其中至少有一样是"销售额为多少多少"之类。   11、你是怎么知道我们招聘这个职位的呢?   如果你是从公司内部某人处打听回来的消息,记得提及他的名字,公司不说偏袒内部关系不代表它不存在。   12、除了工资,还有什么福利最吸引你?   尽可能诚实,如果你做足了功课,你就知道他们会提供什么,回答尽可能和他们提供的相配。如果你觉得自己该得到更多,也可以多要一点。   13、你参加过什么业余活动?   ......

阅读全文(2356) | 评论:0

有些歌词,你永远听不明白 (2006-06-11 14:48:00)

摘要:     唱歌真是高难度的运动!虽然像周杰伦那样能把中文唱的像英文的,也是千年一遇的人才,可在漫长的成长岁月里,总还有一些歌词,让我们生出这样那样的困惑——     

1,小时侯听《信天游》:"我低头,向山沟",总觉得是"我的头,像山沟".     

2,"千年等一回,等一回——",有人听成:"千年的女鬼,的女鬼——"     

3,当年综艺大观的结束曲:"再见,再见,相会在彩屏前......"怎么听都像:"相会在太平间......"后来估计是观众意见太大,改成"相会在掌声里"了.     

4,记得米老鼠和唐老鸭吗?片头说,"啊,演出开始了!"我听了好久,一直以为他说,"啊,野猪拉屎了!"     

5,《济公》里唱:"哪里有不平哪有我".太对了,地上哪里不平,当然会有"窝"了!     

6,《龙的传人》那句"永永远远的擦亮眼",当初无论如何也听不懂,总听成"永永远远地差两年",老是纳闷,为什么一定要差两年呢?     

7,孟庭苇的《你究竟有几个好妹妹》,里面有一句"为何每个妹妹都嫁给眼泪",我怎么听,都是"为何每个妹妹都嫁给人类"!     

8,我的高中同学告诉我,他小时侯把"边区的太阳红又红"听成"变压器的太阳红又红"!他那时根本不知道"边区"是什么,只是记得清清楚楚,每天傍晚时可以看见村子西边红红的落日.最要命的是,在他们村子西边某个高处架着一台变压器,傍晚刚好看到变压器上方有一轮红日.于是我同学一直纳闷:为什么写歌的人知道他们村的变压器放在西边呢?     

9,刘德华的《中国人》里,"五千年的风和雨呀藏了多少梦",听成"吴倩莲的风和雨呀藏了多少梦".奇怪,难不成他们有过一段......    ......

阅读全文(3822) | 评论:0

计算机启动过程详解(2006-06-11 14:45:00)

摘要:计算机启动过程详解
打开电源启动机器几乎是电脑爱好者每天必做的事情,面对屏幕上出现的一幅幅启动画面,我们一点儿也不会感到陌生,但是,计算机在显示这些启动画面时都做了些什么工作呢?相信有的朋友还不是很清楚,本文就来介绍一下从打开电源到出现Windows的蓝天白云时,计算机到底都干了些什么事情。
  首先让我们来了解一些基本概念。第一个是大家非常熟悉的BIOS(基本输入输出系统),BIOS是直接与硬件打交道的底层代码,它为操作系统提供了控制硬件设备的基本功能。BIOS包括有系统BIOS(即常说的主板BIOS)、显卡BIOS和其它设备(例如IDE控制器、SCSI卡或网卡等)的BIOS,其中系统BIOS是本文要讨论的主角,因为计算机的启动过程正是在它的控制下进行的。BIOS一般被存放在ROM(只读存储芯片)之中,即使在关机或掉电以后,这些代码也不会消失。
  第二个基本概念是内存的地址,我们的机器中一般安装有32MB、64MB或128MB内存,这些内存的每一个字节都被赋予了一个地址,以便CPU访问内存。32MB的地址范围用十六进制数表示就是0~1FFFFFFH,其中0~FFFFFH的低端1MB内存非常特殊,因为最初的8086处理器能够访问的内存最大只有1MB,这1MB的低端640KB被称为基本内存,而A0000H~BFFFFH要保留给显示卡的显存使用,C0000H~FFFFFH则被保留给BIOS使用,其中系统BIOS一般占用了最后的64KB或更多一点的空间,显卡BIOS一般在C0000H~C7FFFH处,IDE控制器的BIOS在C8000H~CBFFFH处。
  好了,下面我们就来仔细看看计算机的启动过程吧。
  第一步: 当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向CPU发出并保持一个RESET(重置)信号,让CPU内部自动恢复到初始状态,但CPU在此刻不会马上执行指令。当芯片组检测到电源已经开始稳定供电了(当然从不稳定到稳定的过程只是一瞬间的事情),它便撤去RESET信号(如果是手工按下计算机面板上的Reset按钮来重启机器,那么松开该按钮时芯片组就会撤去RESET信号),CPU马上就从地址FFFF0H处开始执行指令,从前面的介绍可知,这个地址实际上在系统BIOS的地址范围内,无论......

阅读全文(12927) | 评论:1

快速关机的危害 (2006-06-11 14:44:00)

摘要:有一种在网上流传的快速关机方法:调出任务管理器,按住Ctrl键,点击关机,这样可三秒关机,速度很快。另外,也有一些快速关机软件,如:SuperFast Shutdown,用它也能快速关机。

  我们都知道,系统关机时要进行一系列的操作,包括:关闭窗口、结束进程和服务、保存数据等等。而像上面那样快速关机是否省掉了某些步骤,这样做又会不会对系统有所危害呢?

  先来看看系统正常关机要经历哪些步骤:

  ①关机指令通知Windows子系统CSRSS.EXE,CSRSS.EXE,收到通知后会和Winlogon.EXE做一个数据交换,再由Winlogon.EXE通知CSRSS.EXE开始关闭系统的流程。

  ②CSRSS.EXE依次查询拥有顶层窗口的用户进程,让这些用户进程退出。

  ③接着开始终止系统进程。

  以上3个步骤是整个Windows关机过程中最耗费时间的一段,大多数关机缓慢的原因都是因为这3个步骤引起的。

  ④Winlogon.EXE调用NtShutdownSystem()函数来命令系统执行后面的扫尾工作,最后关机。

  看来Windows关机过程还挺复杂的。而使用Ctrl键关机或是使用某些快速关机软件,并不会经过完整的四步过程,而往往是跳过前三步而直接调用NtShutdownSystem()函数进行关机的。

  很多软件在运行时会将数据写入内存,在退出时再保存到文件。如果不经过前面的步骤关机,会导至程序不能正常退出而丢失数据,这样就可能因重要数据丢失造成一些意外的错误,对系统是有危害的。

  所以,在此建议大家尽量不要使用Ctrl键关机或是某些快速关机软件,毕竟数据的安全性比节省的那一点关机时间重要得多。  ......

阅读全文(11991) | 评论:0

CPU的技术参数,看你是否了解你的U!(2006-06-11 14:44:00)

摘要:一、CPU的内部结构与工作原理
  CPU是Central Processing Unit-中央处理器的缩写,它由运算器和控制器组成,CPU的内部结构可分为控制单元,逻辑单元和存储单元三大部分。
    CPU的工作原理就像一个工厂对产品的加工过程:进入工厂的原料(指令),经过物资分配部门(控制单元)的调度分配,被送往生产线(逻辑运算单元),生产出成品(处理后的数据)后,再存储在仓库(存储器)中,最后等着拿到市场上去卖(交由应用程序使用)。
          二、CPU的相关技术参数
       1.主频
   主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。CPU的主频=外频×倍频系数。很多人以为认为CPU的主频指的是CPU运行的速度,实际上这个认识是很片面的。CPU的主频表示在CPU内数字脉冲信号震荡的速度,与CPU实际的运算能力是没有直接关系的。

  当然,主频和实际的运算速度是有关的,但是目前还没有一个确定的公式能够实现两者之间的数值关系,而且CPU的运算速度还要看CPU的流水线的各方面的性能指标。由于主频并不直接代表运算速度,所以在一定情况下,很可能会出现主频较高的CPU实际运算速度较低的现象。因此主频仅仅是CPU性能表现的一个方面,而不代表CPU的整体性能。
        2.外频
  外频是CPU的基准频率,单位也是MHz。外频是CPU与主板之间同步运行的速度,而且目前的绝大部分电脑系统中外频也是内存与主板之间的同步运行的速度,在这种方式下,可以理解为CPU的外频直接与内存相连通,实现两者间的同步运行状态。外频与前端总线(FSB)频率很容易被混为一谈,下面的前端总线介绍我们谈谈两者的区别。
         3.前端总线(FSB)频率
  前端总线(FSB)频率(即总线频率)是直接影响CPU与内存直接数据交换速度。由于数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率,即数据带宽=(总线频率×数据带宽)/8。

阅读全文(3530) | 评论:0

菜鸟装机须知,老鸟未必知(2006-06-11 14:43:00)

摘要:装机这个问题,充分证明了马克思主义唯物辩证法,有什么样的世界观就有什么样的方法论。菜鸟首先想到性能要强,老鸟多问用来干甚;菜鸟促单问价,老鸟社会工程;菜鸟分毫必争,老鸟合理即可;菜鸟时尚新潮,老鸟够用就行。
    老鸟对市场的熟悉程度、人脉关系、口舌技巧,都不是菜鸟所能及的。老眼观市,自然会对菜鸟单单做出一番鸿篇大论,殊不知菜鸟社会工程学经验值一般为零,自然使不出老鸟华丽的必杀计。本文就谈一下,“正常”情况下,菜鸟如何来面对js。

    第一步写单:出单,是最容易被人忽略的环节,js经常神不知鬼不觉的让很多人上了套,更可悲的是,很多人上了套还不自知,心甘情愿的被js宰上一刀。其实js出单就那么几招:
   ; 1、粗心大意。故意“忘记”写音箱,键盘,散热风扇等小配件,一旦开始装机js可一点也不会忘记。
    2、明知故问。有意写一些市场里见不到的货,等掉货时再告诉你没货。
    很多用户在装机之前都会精心制定装机计划,如果真的按照自己的计划装机,一般来说是不会有什么问题的,然而JS也有应对之法,那就是“无货”。

    “对不起,您选的这个品牌型号的主板刚好断货,要不你看看这个如何?这个品牌的主板虽然没有什么名气,但是质量绝对不差。您也是行家,也知道那些名牌不过如此,而且这块主板的价格还便宜很多……(以下省略N千字)。”如果你的立场不坚定,多半会同意更换,那么js的利润也就大大提高了

    3、草船借剑。多是菜鸟提出要用XX配件时,js故做无知“这个品牌价格不太清楚,不过XXX芯片组的产品也就是XXX元”,等掉来货就没人这么说了。

    菜鸟求单,简朴第一,首先从形象上,要打扮成没钱人,不用表演都能拿到比较低的价格。其二让价500,要装5000的机子就要按照4500的价位写单,起码js和你玩高低开的时候,总预算不会超支。其三,多跑两家,多谢几张,横向对比总归是没有错的。

    第二步定单:详细单子上每一个配件是否有货,及当前市场价格。要是市场里拿不到自己中意的配件,又没有高手在场的......

阅读全文(3543) | 评论:0

XP中CPU占用100%原因及解决方法 (2006-06-11 14:42:00)

摘要:我们在使用Windows XP操作系统的时候,用着用着系统就变慢了,一看“ 任务管理器 ”才发现CPU占用达到100%。这是怎么回事情呢?遇到病毒了,硬件有问题,还是系统设置有问题,在本文中笔者将从硬件,软件和病毒三个方面来讲解系统资源占用率为什么会达到100%。

  经常出现CPU占用100%的情况,主要问题可能发生在下面的某些方面:

CPU占用率高 的九种可能

1、防杀毒软件造成 故障

  由于新版的 KV 、金山、 瑞星 都加入了对网页、 插件 、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,或者,升级你的硬件配备。

2、驱动没有经过认证,造成CPU资源占用100%

  大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。 处理方式:尤其是 显卡驱动 特别要注意,建议使用 微软认证 的或由官方发布的驱动,并且严格核对型号、版本。

3、 病毒、木马 造成

  大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和防火墙,加强防毒意识,掌握正确的防杀毒知识。

4、控制面板— 管理工具 —服务—RISING REALTIME MONITOR SERVICE 点鼠标右键,改为手动。

5、开始->运行->msconfig->启动,关闭不必要的启动项,重启。

6、查看“ svchost ”进程。

svchost . exe 是Windows XP系统 的一个核心进程。 svchost.exe 不单单只出现 在Window s XP中,在使用 NT 内核的 Windows系统 中都会有svchost.exe的存在。一般在 Windows 2000 中 svchost.exe进程 的数目为2个,而 在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。

7、查看......

阅读全文(3538) | 评论:1