Estratto del documento

#include <stdio.h>

struct elem

{ int valore;

struct elem * next;

};

void modifica(struct elem *l)

{

int prec, copia;

prec = l->valore;

do

{

l = l->next;

copia = l->valore;

l->valore = l->valore + prec;

prec = copia;

}

while (l->next);

}

struct elem* crea(int n)

{ /* funzione ausiliaria (non richiesta): crea una lista

con i valori n, n-1, ..., 2, 1 */

int i;

struct elem *l, *app;

app = (struct elem *) malloc(sizeof(struct elem));

app->next = NULL;

for (i = 1; i <= n; ++i)

{

app->valore = i;

l = app;

app = (struct elem *) malloc(sizeof(struct elem));

app->next = l;

}

39

free(app);

return l;

}

void stampa(struct elem *l)

{/* funzione ausiliaria (non richiesta): stampa una lista */

while (l != NULL)

{

printf("%d ",l->valore);

l=l->next;

}

printf("\n");

}

main()

{/* programma principale */

int i;

struct elem *p;

p = crea(10);

stampa(p);

modifica(p);

stampa(p);

modifica2(p);

stampa(p);

modifica(p);

stampa(p);

}

Anteprima
Vedrai una selezione di 1 pagina su 1
Programma C - Prodotto inverso Pag. 1
1 su 1
Sintesi

Prodotto inverso

Il programma Prodotto inverso permette di fare con una lista contenente almeno due elementi e con l'utilizzo dei puntatori una lista modificata memorizzando nell’ultimo nodo il prodotto del penultimo ed ultimo nodo, nel penultimo il prodotto del terzultimo e del penultimo e così via. Il primo record non viene modificato.

Ad esempio, una lista contenente la sequenza di interi 9 7 6 3 2 la soluzione di questa lista sarà: 9 63 42 18 6

D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi