Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    5

    Linguaggio C- sos per programmino

    Carissimi geni dell'informatica,
    sono in preda al panico per un semplice programma...
    Vi chiedo un sostegno morale e un supporto pratico...
    Questo programma che ora visualizzerò gira e crea una lista di interi.
    Mi potete per favore scrivere una funzione che conti e stampi le occorrenze di ciascun numero intero immesso prima?
    #include <stdio.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <malloc.h>

    /*struttura elementi della lista*/
    struct elemento {
    int num;
    struct elemento *pun;
    };
    /*prototipi*/
    struct elemento *crea_lista();
    void visualizza_lista(struct elemento *);
    void conta_occorrenze( struct elemento*);

    int main()
    { int c;
    struct elemento *p;
    struct elemento *lista=NULL; /*puntatore della lista-dichiaro la lista vuota*/
    lista=crea_lista(); /*crea la lista*/
    visualizza_lista(lista); /* stampa la lista*/
    c= conta_occorrenze(p);
    system("PAUSE");
    return 0;
    }

    struct elemento* crea_lista()
    {
    struct elemento *p, *ptr;
    int i, n;
    printf("\nQuanti numeri vuoi inserire?\n");
    scanf("%d", &n);
    if(n==0)
    {
    p=NULL; /*lista vuota*/
    }
    else{
    /*creazione primo elemento*/
    p=(struct elemento*)malloc(sizeof(struct elemento));
    printf("\nInserisci solo valori compresi tra 1 e 10\n");
    printf("\nInserisci il primo valore:");
    scanf("%d", & p->num);
    ptr=p;
    /*creazione elementi successivi*/
    for(i=2;i<=n; i++)
    {
    ptr->pun=(struct elemento*)malloc(sizeof(struct elemento));
    ptr=ptr->pun;
    printf("\nInserisci il %d elemento:", i);
    scanf("%d", &ptr->num);
    } /*chiudo il for*/

    ptr->pun=NULL; /* marcatore fine lista*/
    } /* chiudo if-else*/
    return(p);
    }/*chiudo la funzione*/

    void visualizza_lista(struct elemento*p)
    {
    printf(" \nlista\n\n\n\n\n");
    /*ciclo di scansione*/
    while(p!=NULL)
    {printf("%d", p->num);/*visualizza l'informazione*/
    printf("\t ");
    p= p->pun;/*scorre di un elemento*/
    }
    printf("NULL\n\n\n");
    }
    int conta_occorrenze()





    Vi chiedo inoltre una cosa...c'è una procedura standard se volessi scrivere nel main o in una funzione a parte di immettere successivamente un elemento in coda alla lista o in testa alla lista del proggramma suddetto?
    Vi prego aiutatemi.
    Vi ammiro e vi stimo per cotanta intelligenza. Sono una frana...e purtroppo devo pure fare linguaggio C come esame..povera me!!!
    ET
    ET

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: Linguaggio C- sos per programmino

    Originariamente inviato da maestra
    Mi potete per favore scrivere una funzione che conti e stampi le occorrenze di ciascun numero intero immesso prima?
    Ma tu ci hai provato?

    Vi chiedo inoltre una cosa...c'è una procedura standard se volessi scrivere nel main o in una funzione a parte di immettere successivamente un elemento in coda alla lista o in testa alla lista del proggramma suddetto?
    Che intendi con "procedura standard"?

    Puoi farlo con del codice ... aggiungere un elemento in testa e' semplicissimo ... per aggiungerlo in coda devi semplicemente scorrere la lista fino ad arrivare all'elemento che ha il puntatore pun null.

    Sono una frana...e purtroppo devo pure fare linguaggio C come esame..
    Beh ... dato che lo devi fare, cerca di metterci un po' di piu' a comprendere il codice e non a copiarlo senza metterci un po' di impegno ...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    5
    Ciao, grazie per avermi presa in considerazione...certo che ci ho provato!!
    ho seguito una procedura inizialmente senza puntatori usando switch...poi delirio umano perchè i puntatori ce li ho aggiunti dopo ma senza successo. :rollo:
    per immettere gli elementi in testa...forse vengono immessi di volta in volta col programma di prim, vero?
    oppure è il viceversa...si immettono in coda? boh...puoi per favore precisare more details about codice di cui parlavi..testa coda in riferiemnto al prog che ho inviato?please..
    ET

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    444
    Per inserire in testa crei un nodo, al suo puntatore next metti l'attuale testa e infine dichiari questo nodo come nuova testa. Attenta a non invertire l'ordine delle operazioni.

    Per inserire in coda scorri tutta la lista, determinando il nodo finale. A questo nodo, che ha come "next" un valore NULL, fai puntare il tuo nuovo nodo, che avrà NULL come next.

    Per il primo problema, cosa intendi per "inserito prima"?
    *********************************
    Andrea
    *********************************

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    5
    Ciao Andrea, io sono ELENA! grazie per i suggerimenti...
    QUEL PROGRAMMA CHE HO INVIATO TI PERMETTE DI INSERIRE N INTERI IN UNA LISTA E VISUALIZZARLI...
    DOVREI SCRIVERE UNA FUNZIONE CHE CONTI LE OCCORRENZE DI CIASCUN INTERO.l'HO FATTO USANDO UNO SWITCH E DEI CONTATORI PER OGNI INTERO COMPRESO TRA 0 E 10. MA CON I PUNTATORI VADO NEL PALLONE. SORRY HELP ME IF YOU CAN
    ET

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    444
    se conosci il numero massimo presente nella lista a priori, fai un vettore di N interi e ogni volta, icrementi l'indice corrispondente al numero trovato in lista. Es. in lista c'è 2, incrementi il terzo indice del vettore (v[2]). Se non puoi conoscere il numero massimo credo servano procedimenti un po' più laboriosi.
    *********************************
    Andrea
    *********************************

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da maestra
    Linguaggio C- sos per programmino
    Suggerisco l'uso di titoli più rappresentativi, come richiesto dal Regolamento, per le discussioni.

    Inoltre, ricordo che più problemi di natura differente andrebbero trattati in altrettante differenti discussioni.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.