Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Volere il codice e con urgenza non è una cosa carina ...

    Possiamo partire dal codice che hai tentato di scrivere tu?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    5
    Mi sono espresso male pardon!
    L'urgenza era perchè ce l'avevo tra e mani e non volevo riprenderlo una seconda volta!

    codice:
    #include <stdio.h>#include <stdlib.h>
    
    
    struct lista{
           int num;
           struct lista *next;
           };
           
           struct lista *primo;
           void inserisci(void);
           void stampa (void);
           void media(void);
    
           
           int main(){
            
               int scelta;
               printf("inserisci un operazione da fare\n");
               for(;;){
                       printf("1) inserisci\n2)stampa\n3)media\n");
                       scanf("%d", &scelta);
                       switch(scelta){
                                      case 1 : inserisci();break;
                                      case 2: stampa(); break;
                                      case 3: media(); break;
                                      case 4 : return 0;
                                      default : printf("scelta errata\n");
                                      }
    
    
           }
           }
    
    
    void inserisci(){
         int n;
         struct lista *pre,*cur,*nuovo;
         printf("inserisci un num\n");
         scanf("%d", &n);
         for (pre=NULL,cur=primo;cur != NULL && n>=cur->num;pre=cur,cur =cur->next){
             if(n==cur->num){
                             cur->cnt++;
                             return;
                             }
             }
             nuovo=(struct lista*)malloc(sizeof(struct lista));
             nuovo->num=n;
             nuovo->cnt=1;
             nuovo->next=cur;
             if(pre==NULL){
                           primo=nuovo;
                           }
             else{
                  pre->next=nuovo;
                  }
                  }
         
    void stampa(){
         struct lista *p;
         
         for(p=primo;p!=NULL;p=p->next){
                                        printf("\n%d\n", p->num);
                                        }
         }
    
    
    void media(){
         struct lista *p;
         int somma=0;
         int nu=0;
         int med=0;
         printf("\n");
         for(p=primo;p!=NULL;p=p->next){
                                     somma = somma + p->num;
          nu = nu + 1;
          }
                                    
         med=(somma/nu);
         printf("%d\n", med);
    }
    Questo è il codice completo, manca la funzione che dovrebbe darmi a mediana.

    Dovrei scorrermi la lista e farmi dare l'elemento lunghezza/2 ma non mi viene l'algoritmo perchè la lunghezza potrebbe essere anche dispari

    Grazie per le risposte
    Ultima modifica di Arjen10; 09-07-2015 a 14:23

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    E se viene dispari che cambia?

    Intanto scrivi il codice che scorre la lista dall'inizio alla fine ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    5
    La lista la scorro col ciclo for come nelle funzioni di media e stampa.
    Se ha elementi dispari posso individuare la mediana, ad esempio se ho 5 elementi la mediana dovrebbe essere il terzo, mentre in una lista pari?

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.