Liste

di il
4 risposte

Liste

Salve a tutti.Data una lista,devo sommare i valore consecutivi se ci sono eliminando cosi i valori precedenti,e lasciare nella lista quelli che non sono consecutivi.
esempio:
1->2->5->7->8->9
mi darà
3->5->24
io ho implementato in questo modo:
struct elementi *consecutivi(struct elementi *top){
    int somma;
    struct elementi *res=NULL;
    for(;top!=NULL;top=top->next){
if(top->next!=NULL){
    if(top->x+1==top->next->x){
        somma=top->x+top->next->x;
       res=coda(somma,res);
}
else
    res=coda(top->x,res);
}
return res;
};
ma mi dà questo errore:dereferencing pointer to incomplete type.Qualcuno sa aiutarmi?

4 Risposte

  • Re: Liste

    Usa le parentesi
    (top->x)+1
  • Re: Liste

    Trovato l'errore nella dichiarazione di struttura avevo scritto "element" e non "elementi" XD faccio sapere se il codice va
  • Re: Liste

    Purtroppo il codice non funziona ho messo in input 1 2 4
    l'output è stato 3 2 somma solo qll dopo e non controlla se ce ne sono altri dopo ancora,non so se sono stato chiaro
  • Re: Liste

    Ho modificato un po il codice ora l'unica cosa che non va e che somma solo il numero e il suo consecutivo ma se c'è una serie di numeri consecutivi non li somma tt insieme
    struct elementi *consecutivi(struct elementi *top){
          int somma=0;
          struct elementi *prova=NULL;
        struct elementi *res=NULL;
        for(;top!=NULL;top=top->next){
                if(top->next==NULL)
                res=coda(top->x,res);
    if(top->next!=NULL){
        if(top->x+1==top->next->x){
                somma=top->x+top->next->x;
           res=coda(somma,res);
           prova=top->next;
                free(top);
                top=prova;
    }
    else
        res=coda(top->x,res);
    }
    }
    
    return res;
    };
    
Devi accedere o registrarti per scrivere nel forum
4 risposte