[C] Programma che ripiega una lista concatenata

Nandone169
Buon salve, avrei da fare questo esercizio:
Si costruisca un programma che faccia le seguenti cose, nell’ordine:
1. Costruisce una lista concatenata di N nodi con campo informativo intero, acquisendo gli interi da terminale;
2. Acquisisce un numero intero positivo M < N;
3. Ripiega la lista M volte, restituendo una lista di lunghezza [N/M] i cui elementi contengono la somma degli interi costituenti le parti ripiegate. La lista può eventualmente avere un ulteriore elemento che contiene la somma degli elementi che rimangono nell’ultima parte di lunghezza minore di M.
Esempio di elaborazione
• N = 8 lista: →1→2→3·→4→5→6·→7→8→ (· `e un punto di piegatura)
• M = 3
• [N/M] = 3; lista: →7→7→7→15→

Per quanto riguarda i primi due punti non c'è niente da dire. Invece per l'ultimo non sono sicuro di aver capito, perché rispetto a quello che dovrebbe essere l'output finale(che è chiaro) sembra dire altro.

Risposte
apatriarca
In effetti l'output e la descrizione sembrano dire cose diverse.. Non credo ci possa essere altro da fare se non chiedere al tuo professore.

Super Squirrel
Anche per me la traccia risulta poco comprensibile, per esempio
• [N/M] = 3; lista: →7→7→7→15→

dove 8/3=2 invece c'è scritto 3 e gli elementi della lista sono 4!?

In ogni caso l'unico modo che mi viene in mente per ottenere quell'output è qualcosa del genere:


Nandone169
"Super Squirrel":
Anche per me la traccia risulta poco comprensibile, per esempio
• [N/M] = 3; lista: →7→7→7→15→

dove 8/3=2 invece c'è scritto 3 e gli elementi della lista sono 4!?

In ogni caso l'unico modo che mi viene in mente per ottenere quell'output è qualcosa del genere:


Si praticamente quel 3 esce fuori considerando la funzione ceiling, mentre l'aggiunta di un ulteriore membro dipende dalla m in quanto tali elementi risulterebbero fuori dall'operazione di "piegatura"(dato che ogni elemento viene "piegato" con quello che si trova m posizioni avanti). Il punto è che comunque non è un modo per presentare un esercizio considerando che ha fatto parte della prova pratica di un esame passato.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.