Advertisement
Guest User

Untitled

a guest
Jan 27th, 2015
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.06 KB | None | 0 0
  1. //
  2. //  main.m
  3. //  Lista111
  4. //
  5. //  Created by Stefano Morelli on 25/01/15.
  6. //  Copyright (c) 2015 Stefano Morelli. All rights reserved.
  7.  
  8. /*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 */
  9.  
  10.  
  11.  
  12. #include<stdio.h>
  13. #include<stdlib.h>
  14. #define N 3
  15.  
  16.  
  17. typedef struct EL{
  18.     int info;
  19.     struct EL * prox;
  20. } ElemLista;
  21. typedef ElemLista * ListaDiElem;
  22.  
  23. int ListaVuota( ListaDiElem lista );
  24. ListaDiElem InsInTesta( ListaDiElem lista, int elem );
  25. ListaDiElem crea1();
  26. ListaDiElem crea2();
  27. void VisualizzaLista( ListaDiElem lista );
  28.  
  29. int somma(ListaDiElem Testa, int M);                           //scritto io
  30.  
  31.  
  32. int main() {
  33.     ListaDiElem lista=NULL,lista1=NULL,lista2=NULL;
  34.     lista1=crea1();
  35.     lista2=crea2();
  36.     VisualizzaLista(lista1);
  37.     printf("\n\n");
  38.     VisualizzaLista(lista2);
  39.     printf("\n\n");
  40.    
  41.     //inserire qui il codice
  42.     int k;
  43.     k=somma(lista2, N);                            //Errore, non capisco perché
  44.     printf("\n\n%d", k);
  45.     //fine codice
  46.    
  47.    
  48.    
  49.    
  50.    
  51.     VisualizzaLista(lista);
  52.     printf("\n\n");
  53.    
  54.     return 0;
  55. }
  56.  
  57. void VisualizzaLista( ListaDiElem lista ) {
  58.     if ( ListaVuota(lista) )
  59.         printf(" ---| \n");
  60.     else {
  61.         printf(" %d ---> ",lista->info);
  62.         VisualizzaLista(lista->prox);
  63.     }
  64. }
  65.  
  66. ListaDiElem InsInTesta( ListaDiElem lista, int elem ) {
  67.     ListaDiElem punt;
  68.     punt = (ListaDiElem) malloc(sizeof(ElemLista));
  69.     punt->info = elem;
  70.     punt->prox = lista;
  71.     return  punt;
  72. }
  73.  
  74. int ListaVuota( ListaDiElem lista ) {
  75.     return lista == NULL;
  76. }
  77.  
  78. ListaDiElem crea1() {                          //Perché nella funzione non ci sono parametri richiesti?
  79.     ListaDiElem lis=NULL;
  80.     lis=InsInTesta( lis, 2 );
  81.     lis=InsInTesta( lis, 12 );
  82.     lis=InsInTesta( lis, 1 );
  83.     lis=InsInTesta( lis, 4 );
  84.     lis=InsInTesta( lis, 8 );
  85.     lis=InsInTesta( lis, 34 );
  86.     lis=InsInTesta( lis, 78 );
  87.     lis=InsInTesta( lis, 26 );
  88.     lis=InsInTesta( lis, 33 );
  89.     lis=InsInTesta( lis, 11 );
  90.     lis=InsInTesta( lis, 67 );
  91.     lis=InsInTesta( lis, 83 );
  92.     lis=InsInTesta( lis, 92 );
  93.     return lis;
  94. }
  95.  
  96. ListaDiElem crea2() {
  97.     ListaDiElem lis=NULL;
  98.     lis=InsInTesta( lis, 2 );
  99.     lis=InsInTesta( lis, 10 );
  100.     lis=InsInTesta( lis, 15 );
  101.     lis=InsInTesta( lis, 48 );
  102.     lis=InsInTesta( lis, 82 );
  103.     lis=InsInTesta( lis, 11 );
  104.     lis=InsInTesta( lis, 92 );
  105.     lis=InsInTesta( lis, 22 );
  106.     lis=InsInTesta( lis, 36 );
  107.     lis=InsInTesta( lis, 19 );
  108.     lis=InsInTesta( lis, 69 );
  109.     return lis;
  110. }
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120. //inserire qui la funzione
  121.  
  122. int somma(ListaDiElem Testa, int M){
  123.     int sum=0;
  124.    
  125.     if (Testa==NULL)
  126.         return(-1);
  127.     else {
  128.         while(Testa!=NULL) {
  129.             if (Testa->info%M==0){
  130.                 sum=sum+Testa->info;
  131.             }
  132.             Testa=Testa->prox;
  133.         }
  134.        
  135.         return sum;
  136.     }
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement