Código fuente del círculo pago
Te lo enviaré por correo
# include & ltstdio.h & gt
void main()
{ p >
int i, k, m, n, num[50], * p;
printf("Ingrese el número de personas: n = "); scanf("% d ",& ampn);
p = num
for(I = 0;i<n;i++)
*(p+I )= I+1;
I = 0
k = 0
m = 0
mientras(m &; lt; N-1)//m es el número de personas en la oficina. Debido a que hay n personas y solo queda una, como máximo (n-1) personas se eliminan, formando un ciclo.
{
if(*(p+i)!=0)//Determine si este número (número de serie original) está fuera.
k++; // Si el número no se puede contar, informe el número y agregue 1 al contador.
If(k==3)//Informe 3.
{
*(p+I)= 0; //Marca a la persona que está fuera.
k = 0; //Pon el contador a cero para que los demás puedan contar.
m++; //Agrega 1 al contador de exceso
}
i++ //Mueve el puntero hacia atrás. Aunque I no es un puntero, p+i es un puntero, por lo que sirvo al puntero.
If(i==n)//Si el puntero se mueve hasta el final, regresa al encabezado.
I = 0;
}
// El ciclo anterior es seguido principalmente por encontrar la última persona, lo cual es fácil de entender.
While(*p==0)//Utilice esto para juzgar solo el número delante del número que está buscando (incluido el número que está buscando), pero no el número detrás de él.
p++;
printf("El último es N0. %d\n ", * p); Si no entiendes nada, puedes preguntarme.