运行时错误402 MASH uva

时间:2015-04-13 14:13:27

标签: c runtime-error

我刚开始做uva问题。但是在问题402中,无论我做什么,我提交的结果总是运行时错误。我无法理解我的问题在哪里或为什么会导致错误。有人可以帮忙吗?

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

struct nodo
{ 
    int info; 
    struct nodo *sig; 
}; 

struct nodo *p, *q, *nuevo;

void Insertar(int n)
{
    int i; //Contador 
    struct nodo *nuevo;
    for(i = 0; i < n; i++)
    { 
        nuevo = (struct nodo*)malloc(sizeof(struct nodo)); 
        nuevo->info = i+1;

        if(!p)
            p = nuevo; 
        else
            q->sig=nuevo; 

        q = nuevo; 
        q->sig = 0; 
    } 
}

void Borrar()
{ 
    struct nodo *aux; 
} 

int main()
{ 
    int m,s,cont=0,cartas[22],i,j,k; 

    while(scanf("%i %i",&m,&s)==2)
    { 
        if(cont)
            printf("\n");

        cont++; 

        for(i = 0; i < 20; i++)
            scanf("%i",&cartas[i]); 

        printf("Selection #%i\n",cont); 

        Insertar(m); 

        for(i = 0, s = m-s; i < 20 && s; i++)
        { 
            j = cartas[i] - 2; 
            if(j == -1)
            { 
                while(s)
                { 
                    nuevo=p->sig; 
                    free(p); 
                    p = nuevo; 
                    s--; 
                } 
            } 
            else
            { 
                nuevo = p; 
                while(nuevo->sig)
                { 
                    for(k = 0; k < j && nuevo->sig; nuevo = nuevo->sig, k++); 
                    if(nuevo->sig)
                    { 
                        q = nuevo->sig;
                        nuevo->sig = q->sig;
                        free(q);
                        nuevo = nuevo->sig;
                        s--;

                        if(!s)
                            break; 
                    } 
                } 
            } 
        }

        printf("%i",p->info); 
        nuevo = p->sig; 
        free(p); 

        while(nuevo)
        { 
            printf(" %i",nuevo->info); 
            p = nuevo->sig; 
            free(nuevo); 
            nuevo = p; 
        } 

        printf("\n"); 
    } 
}  

0 个答案:

没有答案