Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    760

    Liste in c

    Ho fatto questa lista che deve trovare i multipli tra 2 numeri,secondo voi è formalmente corretta?
    P.S.Lanciandola funziona.....

    codice:
    #include <stdlib.h>
    #include <stdio.h>
    ------FUNZIONI------
    typedef struct nod {
            int data;
            struct nod *next;
    } node;
    
    node *newnode(void)
    {
       return (node *)malloc(sizeof(node));
    }
    
    /* Dato un intero n>0, costruisce la lista di nodi da 1 ad n */
    node* buildlis_n (int n)
    {
        node *p, *lis;
        lis=NULL;
        while (n>0) {
              p=newnode();
              p->data=n;
              p->next=lis;
              lis=p;
              n--;
        }
        return(lis);
    }
    
    /* Stampa degli elementi di una lista */
    void printlis(node *lis,int minimo,int massimo,int mul)
    {
         node* tmp;
    
         tmp = lis;
         int conteggio=0;
    
    
         printf("lista risultato\n");
    
         while (tmp != NULL) {
               if((tmp->data>minimo) && (tmp->data<massimo) && (tmp->data%mul==0) && (conteggio=conteggio+1))
               printf(">>>> %d\n", tmp->data);
               tmp = tmp->next;
    
         }
            printf("Conteggio %d\n", conteggio);
    }
    
    void myFree ( node* top )
    {
        node* tmp;
        tmp = top;
    
        while ( top->next != NULL ) {
              tmp = top->next;
              free(top);
              top = tmp;
        }
    }
    ------MAIN------
    int main()
    {
        node* head;
        int n;
    
        printf ("Inserire valore: ");
        scanf  ("%d", &n);
    
        int min=0;int max=0;int m=0;
    
         printf ("Inserire minimo : ");
         scanf  ("%d", &min);
    
         printf ("Inserire massimo : ");
         scanf  ("%d", &max);
    
         printf ("Inserire multiplo : ");
         scanf  ("%d", &m);
    
       head = buildlis_n ( n );
    
        printlis ( head,min,max,m );
    
        myFree ( head );
    
        return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma perche' non usate i tag CODE ? Cosi' non si capisce nulla ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,319
    Originariamente inviato da oregon
    Ma perche' non usate i tag CODE ? Cosi' non si capisce nulla ...
    Già... perchè, considerando che il Regolamento lo prevede??

    Ho sistemato io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.