La programación en lenguaje C siempre falla y la verificación de errores dice que hay un problema con el programa principal.
Este tipo de problema es muy simple: use un enlace list.A continuación utilizo una lista enlazada circular bidireccional para implementarla. Puede consultarla
#include "stdio.h"
#include "stdlib.h".
#include "malloc.h"
#define NULL 0
Lista de estructuras
{
int datos;
nombre de char[15];
p>estructura Lista *siguiente;
estructura Lista *anterior;
}Lista ;
struct List * InitList(int n)
{/Cree una lista enlazada circular bidireccional con head como nodo principal y datos desde 1 hasta n.
Devolver puntero de cabecera
struct List *head, *p, *q;
int i
head=(struct List *)malloc(sizeof(struct); Lista));
head-gt; data=1;
printf("Ingrese el nombre del primer niño: "); ", cabeza-gt; nombre);
cabeza-gt; siguiente=cabeza;
cabeza-gt; anterior=cabeza;
p=cabeza;
for(i=2;ilt;= n;i)
{
q=(struct List *)malloc(sizeof(struct List)) ;
q-gt;data=i;
printf("Por favor ingrese el nombre del niño dth:",i);
scanf(" s", q-gt; nombre);
p-gt; siguiente=q;
q-gt; prioridad=p;
q-gt ;siguiente=cabeza;
cabeza-gt;prior=q;
p=p-gt;siguiente;
}
return head;
}
void GetList(struct List *head, int w, int s)
{
struct List * p, *q;
p=cabeza;
int i;
for(i=1; ilt; w; i , p=p-gt ;siguiente);
for(;p-gt;siguiente!=p;i,p=p-gt;siguiente)
if((i-w 1)s==0 )
{
q=p-gt; anterior;
p-gt; siguiente-gt; anterior;
p-gt; anterior-gt; siguiente=p-gt; siguiente;
printf("s\n", p-gt; nombre
gratis); ( p);
p=q;
}
printf("s\n", p-gt; nombre); p>}
void main()
{
int n, w, s;
estructura Lista *head ; p>
p>
do
{
system("cls");
printf("Ingrese el número total de niños : ");
scanf("d",amp;n);
if(ngt;0)head=InitList(n); //Se puede ejecutar repetidamente hasta nlt ;=0 stop
else exit(0);
printf("Ingrese la posición y el intervalo del niño que fi
informó por primera vez el número: ");
scanf ("d, d", w, s);
GetList (head, w, s);
p>
sistema ("pausa");
} mientras (1);