Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: lesaxl en 20 Marzo 2019, 01:28 AM

Título: proyecto
Publicado por: lesaxl en 20 Marzo 2019, 01:28 AM
Un verdugo es mandado a exterminar a n prisioneros de guerra. El exterminio lo ejecuta de la
siguiente manera: los prisioneros forman un círculo alrededor del verdugo, el verdugo elige a
quien fusilar primero, una vez muerto el primero, la verdugo cuenta, a partir del lugar donde
estaba su última víctima, k prisioneros en orden de las manecillas del reloj, y luego fusila al késimo prisionero después de su última víctima (a los muertos no los cuenta), y repite este
proceso hasta que solo quede un prisionero. El último prisionero podrá ser liberado. El verdugo
tiene un amigo entre los n prisioneros, escribe un programa que, dado, n, k y la ubicación de su
amigo, le diga a quien fusilar primero, para asegurar que su amigo sea el que quede libre

este es el codigo pero el error es que a medida que se esta corriendo llega un momento que se queda pegado y me manda a cerrar , depurar o eliminar el programa .

ya lo revise pero no encuentro donde esta el problema

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct _nodo
{
   int dato;
   struct _nodo *siguiente;
} tiponodo;

typedef tiponodo *pnodo;
typedef tiponodo *Lista;

void agregarPrisionero(Lista *l, int v);
void mostrarPrisioneros(Lista lista);
void fusilarPrisioneros(Lista *lista, int k, int n);
int getAmigo(int n, int k);

int main()
{
   int n, k,i;
   printf("Total de Prisioneros? :");
   scanf("%d",&n);
   printf( "Cada cuantos Prisioneros fusila? :");
   scanf("%d",&k);
   Lista lista = NULL;
   printf("Su amigo es el numero %d",getAmigo(n,k));
   for(i=0;i<n;i++)
      agregarPrisionero(lista, i);
   printf("Mostar Prisioneros: ");
   mostrarPrisioneros(lista);
   fusilarPrisioneros(lista, k, n);
   printf ("Mostar Sobreviviente: ");
   mostrarPrisioneros(lista);
   return 0;
}

int getAmigo(int n, int k)
{
   int v = -1, tam = n, y = 1,x;
   int amigo[n];
   amigo[0] = 0;
   for(x = (n-1); x > 0; x--)
   {
       amigo