Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // main.m
- // Lista111
- //
- // Created by Stefano Morelli on 25/01/15.
- // Copyright (c) 2015 Stefano Morelli. All rights reserved.
- /*La funzione somma riceve come parametro la testa della lista e un intero M. Quindi, restituisce la somma dei soli valori della lista che sono multipli di M. Se la lista è vuota, la funzione restituisce il valore -1 */
- #include<stdio.h>
- #include<stdlib.h>
- #define N 3
- typedef struct EL{
- int info;
- struct EL * prox;
- } ElemLista;
- typedef ElemLista * ListaDiElem;
- int ListaVuota( ListaDiElem lista );
- ListaDiElem InsInTesta( ListaDiElem lista, int elem );
- ListaDiElem crea1();
- ListaDiElem crea2();
- void VisualizzaLista( ListaDiElem lista );
- int somma(ListaDiElem Testa, int M); //scritto io
- int main() {
- ListaDiElem lista=NULL,lista1=NULL,lista2=NULL;
- lista1=crea1();
- lista2=crea2();
- VisualizzaLista(lista1);
- printf("\n\n");
- VisualizzaLista(lista2);
- printf("\n\n");
- //inserire qui il codice
- int k;
- k=somma(lista2, N); //Errore, non capisco perché
- printf("\n\n%d", k);
- //fine codice
- VisualizzaLista(lista);
- printf("\n\n");
- return 0;
- }
- void VisualizzaLista( ListaDiElem lista ) {
- if ( ListaVuota(lista) )
- printf(" ---| \n");
- else {
- printf(" %d ---> ",lista->info);
- VisualizzaLista(lista->prox);
- }
- }
- ListaDiElem InsInTesta( ListaDiElem lista, int elem ) {
- ListaDiElem punt;
- punt = (ListaDiElem) malloc(sizeof(ElemLista));
- punt->info = elem;
- punt->prox = lista;
- return punt;
- }
- int ListaVuota( ListaDiElem lista ) {
- return lista == NULL;
- }
- ListaDiElem crea1() { //Perché nella funzione non ci sono parametri richiesti?
- ListaDiElem lis=NULL;
- lis=InsInTesta( lis, 2 );
- lis=InsInTesta( lis, 12 );
- lis=InsInTesta( lis, 1 );
- lis=InsInTesta( lis, 4 );
- lis=InsInTesta( lis, 8 );
- lis=InsInTesta( lis, 34 );
- lis=InsInTesta( lis, 78 );
- lis=InsInTesta( lis, 26 );
- lis=InsInTesta( lis, 33 );
- lis=InsInTesta( lis, 11 );
- lis=InsInTesta( lis, 67 );
- lis=InsInTesta( lis, 83 );
- lis=InsInTesta( lis, 92 );
- return lis;
- }
- ListaDiElem crea2() {
- ListaDiElem lis=NULL;
- lis=InsInTesta( lis, 2 );
- lis=InsInTesta( lis, 10 );
- lis=InsInTesta( lis, 15 );
- lis=InsInTesta( lis, 48 );
- lis=InsInTesta( lis, 82 );
- lis=InsInTesta( lis, 11 );
- lis=InsInTesta( lis, 92 );
- lis=InsInTesta( lis, 22 );
- lis=InsInTesta( lis, 36 );
- lis=InsInTesta( lis, 19 );
- lis=InsInTesta( lis, 69 );
- return lis;
- }
- //inserire qui la funzione
- int somma(ListaDiElem Testa, int M){
- int sum=0;
- if (Testa==NULL)
- return(-1);
- else {
- while(Testa!=NULL) {
- if (Testa->info%M==0){
- sum=sum+Testa->info;
- }
- Testa=Testa->prox;
- }
- return sum;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement