• T4CH
  • NEWS
  • VIDEO
Forum > Software

Aiuto--Cancella neg da una lista(Dev c++)

Discussione inserita in 'Software' da domanu, 11 Settembre 2008.

  1. domanu Ospite

    Aiuto--Cancella neg da una lista(Dev c++)

    Salve ragazzi.....

    questo programmino deve cancellare elementi negativi da una lista doppiamenete puntata.......

    è scritto in c++ e compilato in dev c++,nn mi gira.......ovvero mi fa creare la lista,me la visualizza e poi si ferma e nn cancella gli elementi....

    Mi date una mano per favore?

    vi ringrazio...!!!!!!!!



    :(:(:(:(:(:(:(:(



    Code:
    
    #include<stdio.h>
    
    #include<malloc.h>
    
    struct el {struct el *prev;int inf; struct el *next;}; /*struttura lista*/
    
    struct el *crea_lista();
    
    void visualizza_lista(struct el*p);
    
    struct el *elimina_neg(struct el*p);
    
    int main() {
    
    struct el*lista;
    
    int valore;
    
    lista=crea_lista();
    
    visualizza_lista(lista);
    
    elimina_neg(lista);
    
    }
    
    struct el*crea_lista(){
    
    struct el*p,*punt;
    
    int i,n;
    
    printf("nSpecificare il numero di elementi: ");
    
    scanf("%d",&n);
    
    if (n==0)
    
    p=NULL;
    
    else {
    
    p=(struct el*)malloc(sizeof(struct el));
    
    printf("nInserisci il 1 valore: ");
    
    scanf("%d",&p->inf);
    
    punt=p;
    
    p->prev=NULL;
    
    for (i=2; i<=n; i++)
    
    {
    
    punt->next=(struct el*)malloc(sizeof(struct el));
    
    punt->next->prev=punt;
    
    punt=punt->next;
    
    printf("nInserisci il %d elemento: ",i);
    
    scanf("%d",&punt->inf);
    
    }
    
    punt->next=NULL;
    
    }
    
    system("pause");
    
    return (p);
    
    }
    
    void visualizza_lista(struct el*p)
    
    {
    
    printf("n lista --->");
    
    while(p!=NULL)
    
    {
    
    printf("%d", p->inf);
    
    printf("---->");
    
    p=p->next;
    
    }
    
    printf("NULLnn");
    
    system("pause");
    
    }
    
    struct el *elimina_neg(struct el*p)
    
    { 
    
    struct el*app; /*punt appoggio x cancellare*/
    
    while (p!=NULL){
    
    if (p->inf<0)
    
    {
    
    app=p->next;
    
    if (p->prev!=NULL)
    
    {
    
    p=p->prev;
    
    p->next=app;
    
    app->prev=p;
    
    p=p->next;}
    
    else
    
    {
    
    p=app;
    
    app->prev=NULL;
    
    p=p->next;}
    
    }
    
    }
    
    system("pause"); 
    
    return (p);
    
    }
    
    
    domanu, 11 Settembre 2008
    #1
Password dimenticata?
SU TERMINI DI SERVIZIO CONTATTACI