Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    643

    [C], può andar bene questa soluzione?

    L'esame è il 15...può andar bene questa soluzione:

    codice:
    /* La funzione Agg(), modifica i valori del campo val degli elementi della lista
       L in modo tale che il valore del campo val di un elemento m sia pari alla
       somma dei (vecchi) valori dei campi val dell'elemento m e degli elementi
       successivi che sono interi dispari.
       Esempio: se la sequenza dei valori dei campi val della lista era:2,5,8,3,2,4
       allora l funzione la modifica così: 10,8,11,3,2,4. */
    
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct Elem{
        long val;
        struct Elem *next;
    } Elem, *List;    
    
    void Agg(List L){
        
        /* Dichiaro il puntatore al nodo corrente e lo setto al primo nodo */
        List corrente = L; 
        
        while(corrente != NULL){    // Finchè non raggiunge la fine della lista
            L->val += Som(L->next);
            L = L->next;        // Passa al prossimo nodo
        }
    }
    
    
    /* La funzione Som() riceve l'indirizzo del nodo successivo al nodo corrente e
       calcola la somma di tutti gli elementi aventi campo val dispari per poi
       restituire il risultato alla funzione Agg() */
       
    long Som(List L){
        
        long somma = 0;
        
        if(L == 0)    return 0;   // Se non ci sono altri elementi la somma è 0
        
        else{
            while(L->next != NULL){
                if(L->val%2==1) // Se il campo val del nodo puntato da L è dispari
                     somma += L->val;
                
                L = L->next;    // Passa al prossimo nodo
            }
        return somma;            // Ritorna ad Agg il valore della somma
        }
    }
    Grazie
    Andrea

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    E' l'ennesima discussione che apri con titolo poco appropriato e del tutto simile alle precedenti.

    Osserva questa e questa, ad esempio.

    Ti esorto ad utilizzare titoli più significativi, che includano un riferimento a quanto è contenuto in termini di elementi del problema, poichè il fatto di chiedere aiuto o chiedere se una soluzione può andare bene è implicito.

    Inoltre, dato che si tratta sempre del "benedetto esame", almeno continua sempre la medesima discussione senza spargere i listati del tuo esercizio.

    In conclusione, continua una sola delle due discussioni precedenti.

    Questa la chiudo.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.