Visualizzazione dei risultati da 1 a 10 su 12

Visualizzazione discussione

  1. #4
    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

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.