c programación del problema del gato comiendo ratón
#include?lt;stdio.hgt;
void?GetLastMouse(int?nType, ?int?nCount, ?int?nMouse[], ?int?amp;nLastMouse)
{//?nType--0 significa comer un número impar, 1 un número par; nCount--el número total de ratones //?nMouse--la matriz de números de serie de todos los ratones; el último ratón p>
int?nAllIndex?=?0;?//?Índice de ratones totales
int?nLifeIndex?=?0;?//?Índice de ratones vivos
int?nLife?=?0; //Ratones vivos
int?nLifeCount?=?0;?//?Número total de ratones vivos
for(nAllIndex? =?0;?nAllIndex?lt;?nCount;?nAllIndex )
{?//?Obtenga el número de todos los ratones vivos y guarde el índice del último ratón vivo
if?(0?!=?nMouse[nAllIndex])
{
nLifeCount;
nLife?=?nAllIndex;
}
}
if?(1?==?nLifeCount)?//?Si solo queda un ratón vivo, regresa
{
nLastMouse?=?nMouse[nLife];
¿regresar?;
}
para?( nAllIndex?=?0,?nLifeIndex?=?0;?nAllIndex?lt;?nCount?amp;amp;?nLifeIndex?lt;?nLifeCount;?nAllIndex )
{
if?(0?!=?nMouse[nAllIndex]?)?//?Aún no se ha comido
{
if?(nType?==?nLifeIndex? ?2 )?//?Y está en la posición de ser comido
nMouse[nAllIndex]?=?0;?//?0 significa ser comido
nLifeIndex; p>
}
}
GetLastMouse(nType,?nCount,?nMouse,?nLastMouse);?//?Operación recursiva
}
void?main()
{
int?nArray[]?=?{1, 2, 3, 4, 5, 6, 7, 8 , 9, 10};
int?nLastMouse?=?0;?//?El último ratón
GetLastMouse(0,?10,?nArray,?nLastMouse);
printf("El primer número del último mouse es: d\n",?nLastMouse);
}