1. c++编程猫吃老鼠的问题
#include<stdio.h>
voidGetLastMouse(intnType,intnCount,intnMouse[],int&nLastMouse)
{//nType--0表示吃的是奇数,1偶数;nCount--老鼠的总数;
//nMouse--所有老鼠的序号数组;nLastMouse最后一只老鼠
intnAllIndex=0;//总老鼠的索引
intnLifeIndex=0;//活着的老鼠的索引
intnLife=0; //活着的老鼠
intnLifeCount=0;//活着的老鼠总数
for(nAllIndex=0;nAllIndex<nCount;nAllIndex++)
{//获取所有活着的老鼠数量,保存最后一只活着的老鼠的索引
if(0!=nMouse[nAllIndex])
{
nLifeCount++;
nLife=nAllIndex;
}
}
if(1==nLifeCount)//如果活着的老鼠只剩一只了,返回
{
nLastMouse=nMouse[nLife];
return;
}
for(nAllIndex=0,nLifeIndex=0;nAllIndex<nCount&&nLifeIndex<nLifeCount;nAllIndex++)
{
if(0!=nMouse[nAllIndex])//还没被吃
{
if(nType==nLifeIndex%2)//并且处在被吃位置上
nMouse[nAllIndex]=0;//0表示被吃
nLifeIndex++;
}
}
GetLastMouse(nType,nCount,nMouse,nLastMouse);//递运算
}
voidmain()
{
intnArray[]={1,2,3,4,5,6,7,8,9,10};
intnLastMouse=0;//最后一只老鼠
GetLastMouse(0,10,nArray,nLastMouse);
printf("最后一只老鼠的首次编号是:%d ",nLastMouse);
}
2. 请教C语言编程高手帮助:猫捉老鼠问题
这其实就是迷宫问题的变体,猫最初的位置是入口,老鼠的位置就是出口,只不过这个出口处于不停的变动当中,但是老鼠的逃跑方式已经确定,所以只管让它走,猫捉老鼠就是一个求解迷宫路径的过程。比较麻烦的就猫永远抓不到老鼠的情况该如何判定,我们可以利用两个栈把猫和老鼠的路径都保存起来,并且标上序号,因为不用打印最短路径所以就不必出栈,每当猫或老鼠走一步的时候就遍历两个栈,如果猫和老鼠走到他们某一次都走过的地方那么就表明他们将永远在这段路径中循环,即猫永远抓不到老鼠。比如老鼠第10步走到(10,11),猫第十步走到(20,21),而老鼠第30步又走到(10,11),猫第30步也走到(20,21)就表明猫和老鼠会在这段路程中循环不息。我的思路就是这样吧,如果有什么不对请帮忙指点一下,代码有时间我也去打打,如果你做出来了不妨交流一下,呵呵!
3. 猫爪老鼠游戏模拟(c++程序设计)C++题目:猫抓老鼠的模拟 1.问题描述 在一个迷宫内,猫正在追
C++编写猜数字小游戏#include#include#includevoidmain(){cout>x;for(i=1;iy){if(i==10){cout>x;continue;}elseif(x>x;continue;}elsecout10){cout>z;}else{cout>z;}}while(z=='Y'||z=='y');}