十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
QQ尾巴;
创新互联,为您提供网站建设公司、网站制作、网站营销推广、网站开发设计,对服务生料搅拌车等多个行业拥有丰富的网站建设及推广经验。创新互联网站建设公司成立于2013年,提供专业网站制作报价服务,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏心悦目的作品。 与客户共同发展进步,是我们永远的责任!
如果你在用QQ聊天时,出现了邀请你到某网站看看的信息,你千万不要相信,说不定这就是一个引诱你上当的病毒。瑞星反病毒监测网截获的一个利用QQ聊天软件进行传播的病毒——“QQ尾巴(Trojan.QQ3344.s)”就是这样的。目前,这个病毒已经在网络间迅速泛滥。
QQ尾巴(Trojan.QQ3344.s)是一种木马病毒,通过QQ软件、网页传播,依赖系统是WIN 9X/NT/2000/XP。该病毒主要是向正在聊天的QQ用户发送类似“呵呵,其实我觉得这个网站真的不错,你看看!http://www.ktv530.com/”的消息,收到消息的QQ用户如果点击相关地址的话,就会中毒,并利用该用户继续向其他正在聊天的QQ好友发送类似信息。该病毒每隔几分钟就会发送一次病毒消息,严重干扰了用户信息的正常传递。
用QQ聊天时,一定要看好这个“尾巴”。该信息是隐藏的,发送方并不知道,因此防止该病毒扩散的最好方法是:当收到以上这种信息后,请不要轻易点击,应该立刻询问一下对方是否发给你过这类的消息,以防中招。像这样的病毒网上很多,电脑用户一定要提高警惕,注意防范,不要轻易相信陌生的信息。
参考资料:;ct=17pn=0tn=ikaslistrn=10
QQ病毒专杀工具:
六大QQ病毒的特征以及清除方法
一、“QQ尾巴”病毒
病毒主要特征
这种病毒并不是利用QQ本身的漏洞 进行传播。它其实是在某个网站首页上嵌入了一段恶意代码,利用IE的iFrame系统漏洞自动运行恶意木马程序,从而达到侵入用户系统,进而借助QQ进行垃圾信息发送的目的。用户系统如果没安装漏洞补丁或没把IE升级到最高版本,那么访问这些网站的时候其访问的网页中嵌入的恶意代码即被运行,就会紧接着通过IE的漏洞运行一个木马程序进驻用户机器。然后在用户使用QQ向好友发送信息的时候,该木马程序会自动在发送的消息末尾插入一段广告词
清除方法:
1.在运行中输入MSconfig,如果启动项中有“Sendmess.exe”和“wwwo.exe”这两个选项,将其禁止。在C:\WINDOWS一个叫qq32.INI的文件,文件里面是附在QQ后的那几句广告词,将其删除。转到DOS下再将“Sendmess.exe”和“wwwo.exe”这两个文件删除。
二、QQ“缘”病毒
病毒特征:
该病毒用VB语言编写,采用ASPack压缩,利用QQ消息传播。运行后会将IE默认首页改变为:.**115.COM/,如果你发现自己的IE首页被修改成以上网址,就是被该病毒感染了。
病毒会利用QQ发送例如“今天在网上下了本电子书,书名叫《缘》,写得不错,而且书的作者的名字很巧…………点击下面这个地址可以下载这本书”;“1937年12月13日,300000南京人民被侵华日军集体大屠杀!!!所有的中国人都不应忘记这个日子,从始至终日本人都没有改变它们的野心!中华儿女要团结自强牢记历史,我们要时刻警惕日本人的野心,钓鱼岛是中国的领土!!!台湾是中国不可分割的一部份!!!请你将此消息发给你QQ上的好友!”等消息,消息里的链接是病毒网址。
清除方法:
使用了下面的办法将其彻底删除。
找到下列文件:
C:\windows\system\noteped.exe
C:\windows\system\Taskmgr.exe
C:\Windows\noteped.exe
C:\Windwos\system32\noteped.exe
删除掉:其中Taskmgr.exe 要先打开"window 任务管理器",选中进程"Taskmgr.exe",杀掉
注意:有两个名字叫"Taskmgr.exe"进程,一个是QQ病毒,一个是你刚才打开的"Window 认为管理器"
然后到注册表中找到"\HKey_Local_Machine\software\Microsoft\windows\CurrentVersion\Run"
找到"Taskmgr" 删除
如果你还不明白那请你先找到那几个文件,然后再按下面步骤操作:
1.在任务栏上点击鼠标右键,选择任务管理器
2.选择进程里的Taskmgr.exe,但我后来又测试也进行名称不一定是大写的,也有可能是小写,一般排在上面的一个是。
3.点击开始-运行,输入Regedit进入注册表
4.在注册表中找到 "\HKey_Local_Machine\software\Microsoft\windows\CurrentVersion\Run,将Taskmgr"项删除"。
删除后重启计算机,《缘》QQ病毒宣布彻底删除。
另外提醒大家,尽快更新你的IE到IE6 SP1 这样可以减少很多的IE被改机会。
近来网上出现一种叫做“QQ尾巴”的木马病毒。该病毒会偷偷藏在你的系统中,当你在使用QQ的时候,它会自动寻找QQ窗口,给在线上的QQ好友发送诸如“刚刚朋友给我发来的这个东东。你不看看要后悔哦--”之类的假消息,如果有人信以为真点击该链接的话,将会感染上病毒,并且成为病毒的传播源。
三、“QQ狩猎者”病毒
病毒特征:
1、在进行QQ聊天时会在消息中加入信息"向你介绍一个好看的动画网: "
2、当浏览带毒网站时,会利用IE漏洞,尝试新增sys文件和tmp文件的执行关联,并下载执行病毒文件 b.sys,如果IE已经打上补丁,则会弹出一个插件对话框,引诱用户安装,安装后会将自己安装到 %Windows%Downloaded Program Files 文件夹中,文件名为"b.exe",如果用户拒绝安装该插件,会不断弹出对话框要求用户安装。
3、复制文件:
A、复制病毒体到 %SystemRoot% 文件夹中,文件名为"Rundll32.exe";
B、复制病毒体为 "C:\cmd.exe";
C、试图复制病毒体到共享目录中,名为"病毒专杀.exe"和"周杰伦演唱会.exe"。
4、添加注册表启动项,以随机启动在注册表的主键:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run添加以下键值"LoadPowerProfile"="%SystemRoot%Rundll32.exe"
5、修改和新增以下文件关联
A、修改.exe文件的关联,每当执行exe文件时,即首先执行病毒预先复制的病毒文件。在注册表的主键:HKEY_CLASS_ROOT\exefile\shell\open\command 修改如下键值:默认="C;\cmd.exe %1 *"
B、新增.sys文件的执行关联,使得在浏览带毒网站时执行病毒文件 b.sys在注册表的主键: HKEY_CLASS_ROOT\sysfile\shell\open\command修改如下键值:默认="""%1"" %*"
C、新增.tmp文件的执行关联在注册表的主键:HKEY_CLASS_ROOT\tmpfile\shell\open\command修改如下键值:默认="""%1"" %*"
6、试图偷传奇游戏的密码,并通过自带的邮件引擎以"mj25257758@263.sina.com"的名义发送到"scmsmj@tom.com"信箱中。
7、在Win2000、WinXP、Win2003系统中,系统文件"Rundll32.exe"就在系统目录中,因而病毒会尝试将该文件覆盖,但这几个系统都能自动保护并恢复受到破坏的系统文件,因而病毒不能正常加载,但仍可以通过EXE关联被加载.
清除方法:
A、关闭Windows Me、Windows XP、Windows 2003的“系统还原”功能;
B、重新启动到安全模式下;
C、先将regedit.exe改名为regedit.com,再用资源管理器结束cmd.exe进程,然后运行regedit.com,将EXE关联修改为""%1" %*",再删除以下文件:C:\cmd.exe、%Windows%\Download Program Files\b.exe。对于Win9x系统,还要删除%SystemRoot%\Rundll32.exe,再到共享目录中看有没有"病毒专杀.exe"和"周杰伦演唱会.exe"这两个文件,文件大小为11184字节,如果有,将其删除。
D、清理注册表:
打开注册表,删除主键 HKEY_CLASSES_ROOT\sysfile\shell\open、HKEY_CLASSES_ROOT\tmpfile\shell\open 修改 HKEY_CLASSES_ROOT\exefile\shell\open\command 的键值为 "%1" %*
防范措施:
不要轻易点击QQ上的不明链接,不要安装来历不明的插件(如该病毒网站上所谓的"动画播放插件2.0")。
四、“武汉男生”病毒
病毒特性:
此病毒是“武汉男生”的一系列新变种,病毒发作后会利用QQ聊天工具进行传播,定时给QQ网友发送包含网址的信息来诱使用户点击,该网页利用了IE的Object Data漏洞下载并运行病毒本身,该漏洞是由HTML中OBJECT的DATA标签引起的。对于DATA所标记的URL,IE会根据服务器返回的HTTP头来处理数据。如果HTTP头中返回的URL类型Content-Type是Application/hta,那么该URL指定的文件就能够执行,无论IE设置的安全级别有多高。
该变种较明显的特点是,病毒运行后,除定时发给QQ网友同样的网址外还会趁机盗取“传奇”游戏的帐户、密码以及其他信息,并以邮件形式发给盗密码者,还会结束多种反病毒软件,以保护自身不被清除。
(1)如果点击病毒网页,将会显示美女图片,而同时弹出一个标题为“asp空间”的不可见窗口。此网页利用IE漏洞,下载并运行leoexe.gif和leo.asp文件,其中leoexe.gif并不是图像文件,而是exe类型的病毒体,leo.asp是病毒释放器;
(2)病毒一旦运行,将结束大部分杀毒软件、防火墙以及某些病毒专杀工具;
(3)每隔一段时间给QQ网友发送信息
(4)病毒运行后会复制自身到系统目录下,文件名是updater.exe、Systary.exe、sysnot.exe,并在注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices中添加:
“windows update” = “%安装目录%\system\updater.exe” %安装目录% 是Windows 系统的安装目录,在不同系统下该目标表现可能不同,可能的有:c:\windows;c:\winnt 等。
(5)修改文本文件(*.txt)关联和可执行文件关联,直接指向病毒本身,如果用户运行任意的txt文件和exe文件都会激活病毒。
(6)病毒会在计算机中搜索传奇游戏的帐户、密码以及其他信息,发送到指定的E-Mail信箱。
清除病毒
计算机病毒种类有以下几种:
1 网络病毒——通过计算机网络传播感染网络中的可执行文件。
2 文件病毒——感染计算机中的文件(如:COM,EXE,DOC等)。
3 引导型病毒——感染启动扇区(Boot)和硬盘的系统引导扇区(MBR)。
4 还有这三种情况的混合型,例如:多型病毒(文件和引导型)感染文件和引导扇区两种目标,这样的病毒通常都具有复杂的算法,它们使用非常规的办法侵入系统,同时使用了加密和变形算法。
计算机病毒具有传播性、隐蔽性、感染性、潜伏性、可激发性、表现性或破坏性。计算机病毒的生命周期:开发期→传染期→潜伏期→发作期→发现期→消化期→消亡期。
计算机病毒是一个程序,一段可执行码。就像生物病毒一样,具有自我繁殖、互相传染以及激活再生等生物病毒特征。计算机病毒有独特的复制能力,它们能够快速蔓延,又常常难以根除。它们能把自身附着在各种类型的文件上,当文件被复制或从一个用户传送到另一个用户时,它们就随同文件一起蔓延开来。
扩展资料:
原理:
病毒依附存储介质软盘、 硬盘等构成传染源。病毒传染的媒介由工作的环境来定。病毒激活是将病毒放在内存, 并设置触发条件,触发的条件是多样化的, 可以是时钟,系统的日期,用户标识符,也可以是系统一次通信等。条件成熟病毒就开始自我复制到传染对象中,进行各种破坏活动等。
病毒的传染是病毒性能的一个重要标志。在传染环节中,病毒复制一个自身副本到传染对象中去。
第一次病毒入侵网络是在1988年1月,美国康奈尔大学学生莫里斯将其编写的蠕虫程序输入计算机网络,程序输入后迅速膨胀,几小时内造成网络堵塞,造成960万美元的经济损失。
计算机病毒通常是指某些有问题的计算机软件或程序,能够在计算机内把问题反复地自我繁殖和扩散,危及计算机系统的工作,就像病毒在生物体内繁殖导致生物患病一样。
计算机病毒最初起源于美国。本世纪80年代,美国电话电报公司贝尔实验室的工作人员,由于工作失误制造出病毒。后来,一些恶作剧者为了显示自己手段高明或寻求刺激,制造了不少病毒。
计算机病毒是计算机程序设计者的恶作剧,已成为世界公害。人类现在已采取了积极的预防措施,对计算机进行“接种疫苗”,但这对于层出不穷的病毒来说,显然处于被动状态。从根本上控制计算机病毒的危害还有待高科技界的大力研究。
参考资料:百度百科——计算机病毒
病毒是一种极微小的生物,只能在电子显微镜下才能看到。病毒病常发生在高温、干旱条件下。主要是借助蚜虫、叶蝉、椿象等昆虫与植物汁液接触传染。病毒主要在杂草、块茎(如马铃薯、甘薯)、种子和昆虫体内过冬。干旱年份蚜虫繁殖快,病毒病发生也重。
简单的c语言课程设计,实现猜数字的游戏
可以参考下哦~~~
推荐资源
c语言课程设计案例40例源代码(上). VC++案例精编(很好的实例)
网上书店系统 J2EE
JS拖拽并保存Cookies
学生成绩管理系统 J2EE (MVC)Struts+Hibernate
JAVA面试题150例
百度技术沙龙第7期回顾:敏捷开发实战分享(含资料下载). pdf
SQL语句实现对数据库查询结果的行列互换
51单片机学习资料整合大全
Android 开发技巧大全
热门Tag
Java c++ C# 教程 linux Android C语言 pdf 源码 编程 计算机 matlab 数据库 SQL oracle c 电子书 课程设计 源代码 数据结构 中文 vc api jQuery VB 单片机 windows 破解 javascript mfc chm . net 课件 jsp asp
本周热点资源
春运抢票工具V0.5 火车票 余票查询 火车票转让信息 列车时刻表 车次查询
c语言课程设计案例40例源代码(上). 春运抢票工具V0.6 我要火车票 余票查询 火车票转让信息 列车时刻表 车次查询
春运抢票工具V0.5 火车票 余票查询 火车票转让信息 列车时刻表 车次查询
天正8.2 全功能注册机
android开发入门教程
c语言课程设计案例40例源代码(下)
EmotionLink 连连看程序和代码
光剑程序 vc源码 使用了mfc opencv gdi+
可用于天正建筑8.2注册机
敏捷个人-认识自我,管理自我 v0.2.pdf
Fraps 3.2.5破解版
C2008sp1.rar(愤怒的小鸟所需文件)
黑防灰鸽子脱壳版 2011年1月7日 最新免杀 灰鸽子
WRMPS6.5 网人商业版企业版破解版
Sybase ASA(SQL Anywhere 12.0.0)中文文档全集. chm
vs全图3.1.5合以下版本
本周上传用户排名
57个clwflm
49个lihuaijun
47个feitian19873000
30个xsq123
26个iis81365341
26个Rangers20052753
25个nitaiyoucala
25个zhangab6672
22个zhaobing266
22个mengyuan510
21个allring
20个shenhay
19个yx_222
19个happy880823
19个le...
编程实现该游戏,游戏结束时,显示人猜一个数用了几次。
提示:用库函数random()产生一个随机数。
如:
Int z;
z= random(9999);
ˋ◤ 蒾纞· 回答:1 人气:6 解决时间:2009-12-29 17:03
#includestdio.h
#includestdlib.h
int main()
{
int a,z,t,i,c,m,g,s,j,k,l[4]; /*j:数字正确的位数 k:位置正确的位数*/
srand((unsigned)time(0));
z=rand()%10000+1; /*计算机想一个随机数*/
printf("****欢迎参加人机猜数游戏****");
printf("\n");
printf("\n");
printf("我有一个四位数的数字,请猜一猜!\n");
printf("\n");
for(c=1;;c++) /*c: 猜数次数计数器*/
{
scanf("%d",g); /*请人猜*/
printf("请输入一个四位数:");
a=z;j=0;k=0;l[0]=l[1]=l[2]=l[3]=0;
for(i=1;i5;i++) /*i:原数中的第i位数。个位为第一位,千位为第4位*/
{
s=g;m=1;
for(t=1;t5;t++) /*人所猜想的数*/
{
if(a%10==s%10) /*若第i位与人猜的第t位相同*/
{
if(mt!=l[0]t!=l[1]t!=l[2]t!=l[3])
{
j++;m=0;l[j-1]=t; /*若该位置上的数字尚未与其它数字“相同”*/
} /*记录相同数字时,该数字在所猜数字中的位置*/
if(i==t) k++; /*若位置也相同,则计数器k加1*/
}
s/=10;
}
a/=10;
}
printf("你猜对了%d个数字,\n",j);
printf("并且在猜对的数字中有 %d 个位置也是正确的.\n",k);
if(k==4) break; /*若位置全部正确,则人猜对了,退出*/
//}
printf("恭喜你,猜对了!");
printf("\n");
printf("你用了%d次猜出了这个数.\n",c);
}
计算机“想”了一个“1234”请人猜,可能的提示如下:
91.人机猜数游戏
92.人机猜数游戏(2)
91.人机猜数游戏
由计算机“想”一个四位数,请人猜这个四位数是多少。人输入四位数字后,计算机首先判断这四位数字中有几位是猜对了,并且在对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数是多少为止。
例如:计算机“想”了一个“1234”请人猜,可能的提示如下:
人猜的整数 计算机判断有几个数字正确 有几个位置正确
1122 2 1
3344 2 1
3312 3 0
4123 4 0
1243 4 2
1234 4 4
游戏结束
请编程实现该游戏。游戏结束时,显示人猜一个数用了几次。
*问题分析与算法设计
问题本身清楚明了。判断相同位置上的数字是否相同不需要特殊的算法。只要截取相同位置上的数字进行比较即可。但在判断几位数字正确时,则应当注意:计算机所想的是“1123”,而人所猜的是“1576”,则正确的数字只有1位。
程序中截取计算机所想的数的每位数字与人所猜的数字按位比较。若有两位数字相同,则要记信所猜中数字的位置,使该位数字只能与一位对应的数字“相同”。当截取下一位数字进行比较时,就不应再与上述位置上的数字进行比较,以避免所猜的数中的一位与对应数中多位数字“相同”的错误情况。
*程序与程序注释
#includestdio.h
#includetime.h
#includestdlib.h
void main()
{
int stime,a,z,t,i,c,m,g,s,j,k,l[4]; /*j:数字正确的位数 k:位置正确的位数*/
long ltime;
ltime=time(NULL); /*l:数字相同时,人所猜中数字的正确位置*/
stime=(unsigned int)ltime/2;
srand(stime);
z=random(9999); /*计算机想一个随机数*/
printf("I have a number with 4 digits in mind,please guess.\n");
for(c=1;;c++) /*c: 猜数次数计数器*/
{
printf("Enter a number with 4 digits:");
scanf("%d",g); /*请人猜*/
a=z;j=0;k=0;l[0]=l[1]=l[2]=l[3]=0;
for(i=1;i5;i++) /*i:原数中的第i位数。个位为第一位,千位为第4位*/
{
s=g;m=1;
for(t=1;t5;t++) /*人所猜想的数*/
{
if(a%10==s%10) /*若第i位与人猜的第t位相同*/
{
if(mt!=l[0]t!=l[1]t!=l[2]t!=l[3])
{
j++;m=0;l[j-1]=t; /*若该位置上的数字尚未与其它数字“相同”*/
} /*记录相同数字时,该数字在所猜数字中的位置*/
if(i==t) k++; /*若位置也相同,则计数器k加1*/
}
s/=10;
}
a/=10;
}
printf("You hane correctly guessed %d digits,\n",j);
printf("and correctly guessed %d digits in exact position.\n",k);
if(k==4) break; /*若位置全部正确,则人猜对了,退出*/
}
printf("Now you have correctly guessed the whole number after %d times.\n",c);
}
*运行示例
Now you have correctly guessed the whole number after 7 times.
*思考题
猜数游戏。由计算机“想”一个数请人猜,人输入猜的数,如果猜对了,则结束游戏,否则计算机会给出提示,指出人猜的数是太大,还是太小。当一个数猜了20次还未猜中时,应停止猜数者继续游戏的权力,从程序中退出。
92.人机猜数游戏(2)
将以上游戏双方倒一下,请人想一个四位的整数,计算机来猜,人给计算机提示信息,最终看计算机用几次猜出一个人“想”的数。请编程实现。
*问题分析与算法设计
解决这类问题时,计算机的思考过程不可能象人一样具完备的推理能力,关键在于要将推理和判断的过程变成一种机械的过程,找出相应的规则,否则计算机难以完成推理工作。
基于对问题的分析和理解,将问题进行简化,求解分为两个步聚来完成:首先确定四位数字的组成,然后再确定四位数字的排列顺序。可以列出如下规则:
1)分别显示四个1,四个2,......,四个0,确定四位数字的组成。
2)依次产生四位数字的全部排列(依次两两交换全部数字的位置)。
3)根据人输入的正确数字及正确位置的数目,进行分别处理:
(注意此时不出现输入的情况,因为在四个数字已经确定的情况下,若有3个位置正确,则第四个数字的位置必然也是正确的)
若输入4:游戏结束。
判断本次输入与上次输入的差值
若差为2:说明前一次输入的一定为0,本次输入的为2,本次交换的两个数字的位置是正确的,只要交换另外两个没有交换过的数字即可结束游戏。
若差为-2:说明前一次输入的一定为2,本次的一定为0。说明刚交换过的两个数字的位置是错误的,只要将交换的两个数字位置还原,并交换另外两个没有交换过的数字即可结束游戏。
否则:若本次输入的正确位置数=上次的正确位置数
则恢复上次四位数字的排列,控制转3)
否则:将本次输入的正确位置数作为“上次输入的正确位置数”,控制转3)。
*程序与程序注释
#includestdio.h
#includestdlib.h
void bhdy(int s,int b);
void prt();
int a[4],flag,count;
void main()
{
int b1,b2,i,j,k=0,p,c;
printf("Game guess your number in mind is # # # #.\n");
for(i=1;i10k4;i++) /*分别显示四个1~9确定四个数字的组成*/
{
printf("No.%d:your number may be:%d%d%d%d\n",++count,i,i,i,i);
printf("How many digits have bad correctly guessed:");
scanf("%d",p); /*人输入包含几位数字*/
for(j=0;jp;j++)
a[k+j]=i; /*a[]:存放已确定数字的数组*/
k+=p; /*k:已确定的数字个数*/
}
if(k4) /*自动算出四位中包的个数*/
for(j=k;j4;j++)
a[j]=0;
i=0;
printf("No.%d:your number may be:%d%d%d%d\n",++count,a[0],a[1],a[2],a[3]);
printf("How many are in exact positions:"); /*顺序显示四位数字*/
scanf("%d",b1); /*人输入有几位位置是正确的*/
if(b1==4){prt();exit(0);} /*四位正确,打印结果。结束游戏*/
for(flag=1,j=0;j3flag;j++) /*实现四个数字的两两(a[j],a[k]交换*/
for(k=j+1;k4flag;k++)
if(a[j]!=a[k])
{
c=a[j];a[j]=a[k];a[k]=c; /*交换a[j],a[k]*/
printf("No.%d:Your number may be: %d%d%d%d\n",++count,a[0],a[1],a[2],a[3]);
printf("How many are in exact positins:");
scanf("%d",b2); /*输入有几个位置正确*/
if(b2==4){prt();flag=0;} /*若全部正确,结束游戏*/
else if(b2-b1==2)bhdy(j,k); /*若上次与本次的差为2,则交换两个元素即可结束*/
else if(b2-b1==-2) /*若上次与本次的差为-2,则说明已交换的(a[j],a[k])是错误的
将(a[j],a[k]还原后,只要交换另外两个元素即可结束游戏*/
{
c=a[j];a[j]=a[k];a[k]=c;
bhdy(j,k);
}
else if(b2=b1)
{
c=a[j];a[j]=a[k];a[k]=c; /*恢复交换的两个数字*/
}
else b1=b2; /*其它情况则将新输入的位置信息作为上次的位置保存*/
}
if(flag) printf("You input error!\n"); /*交换结果仍没结果,只能是人输入的信息错误*/
}
void prt() /*打印结果,结束游戏*/
{
printf("Now your number must be %d%d%d%d.\n",a[0],a[1],a[2],a[3]);
printf("Game Over\n");
}
void bhdy(int s,int b)
{
int i,c=0,d[2];
for(i=0;i4;i++) /*查找s和b以外的两个元素下标*/
if(i!=si!=b) d[c++]=i;
i=a[d[1;a[d[1=a[d[0; a[d[0=i; /*交换除a[s]和a[b]以外的两个元素*/
prt(); /*打印结果,结束游戏*/
flag=0;
}
*运行示例
假设人想的四位数是:7215
Game Begin
Now guess your number in mind is # # # #.
No.1:your number may be:1111
*问题的进一步讨论
本程序具有逻辑结构清析、算法简单正确的优点,但在接受人的输入信息时缺少必要的出错保护功能,同时在进行第三步推理过程中没有保留每次猜出的数字位置信息及人输入的回答,这样对于每次人输入的信息就无法进行合法性检查,即无法检查人的输入信息是否自相矛盾;同晨也无法充分利用前面的结果。
这些缺陷是可以改进的,但最后一个问题改进难度较大,留给大家自己去完成。
*思考题
“一条龙游戏”。在一个3×3的棋盘上,甲乙双方进行对弃,双方在棋盘上轮流放入棋子,如果一方的棋子成一直线(横、竖或斜线),则该方赢。请编写该游戏程序实现人与机器的比赛。比赛结果有三种:输、赢或平。
在编程过程中请首先分析比赛中怎样才能获胜,找出第一步走在什么位置就最可能赢。