Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    11

    [C] - Popolazione array con funzione automatica

    Ciao, ho un problema riguardante il popolamento automatico di un array all'interno di una Struct... Mi spiego meglio:
    Attraverso una funzione dovrei popolare automaticamente l'array per esempio:

    char cognome[]={"carlo","pippo",ecc};


    in sostanza dovrei automatizzare questo:


    codice:
    void acquis_aut(int dim, PALESTRA array[SIZE])
    {
            
                       int i;
                       
                       i=0;
                       fflush(stdin);
                       strcpy(array[i].cognome,"Panucci");
                       fflush(stdin);
                       strcpy(array[i].nome,"Aldo");
                       array[i].giorno=15;  
                       array[i].mese=10;
                       array[i].anno=2012;
                       fflush(stdin);
                       strcpy(array[i].abbonamento,"A");
                
                       i=1;
                       fflush(stdin);
                       strcpy(array[i].cognome,"Biffi");
                       fflush(stdin);
                       strcpy(array[i].nome,"Andrea");
                       array[i].giorno=22;  
                       array[i].mese=11;
                       array[i].anno=2012;
                       fflush(stdin);
                       strcpy(array[i].abbonamento,"B");
    
                       i=2;
                       fflush(stdin);
                       strcpy(array[i].cognome,"Ambruoso");
                       fflush(stdin);
                       strcpy(array[i].nome,"Carlo");
                       array[i].giorno=18;  
                       array[i].mese=12;
                       array[i].anno=2012;
                       fflush(stdin);
                       strcpy(array[i].abbonamento,"C");
                       
                       i=3;
                       fflush(stdin);
                       strcpy(array[i].cognome,"Diana");
                       fflush(stdin);
                       strcpy(array[i].nome,"Eleonora");
                       array[i].giorno=04;  
                       array[i].mese=01;
                       array[i].anno=2013;
                       fflush(stdin);
                       strcpy(array[i].abbonamento,"C");
                       
                       i=4;
                       fflush(stdin);
                       strcpy(array[i].cognome,"Giacchi");
                       fflush(stdin);
                       strcpy(array[i].nome,"Giocchinano");
                       array[i].giorno=07;  
                       array[i].mese=01;
                       array[i].anno=2013;
                       fflush(stdin);
                       strcpy(array[i].abbonamento,"B");
         
                       printf("\n\n**** Aquisizione dei dati di prova effettuata ****\n\n");
    }
    Suggerimenti?? (NON usando i puntatori)

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il codice non è leggibile ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    11
    Originariamente inviato da oregon
    Il codice non è leggibile ...

    Ecco fatto,scusami

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    Ciao, ho un problema riguardante il popolamento automatico di un array all'interno di una Struct... Mi spiego meglio:
    Attraverso una funzione dovrei popolare automaticamente l'array per esempio:

    char cognome[]={"carlo","pippo",ecc};


    in sostanza dovrei automatizzare questo: [...]
    Invece di cambiare manualmente il valore della i,dovresti fare un ciclo . .all'interno del ciclo ci metti dei cout per far inserire all'utente le informazioni . .

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    11
    Ciao Marco1995, la funzione deve caricare automaticamente i dati di prova.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Perché non carichi i dati da un file apposito ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    11
    L'esercizio non prevede il caricamento da file....

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    Ciao Marco1995, la funzione deve caricare automaticamente i dati di prova.
    Allora questo vuol dire che le matrici contenenti i nomi e i cognomi devono essere precaricate all'interno del programma.
    Tu dove li tieni i dati relativi ai nomi e ai cognomi?
    Inoltre i nomi e cognomi vuoi che vengano salvati all'interno della struct in modo casuale o in un ordine specifico (ad esempio ad ogni cognome corrisponde un determinato nome)?
    Dalla descrizione che hai dato il problema è molto vago . .Oppure sono io che trovo difficoltà a capire . .
    Ciao.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    O inserisci tutti i dati nella dichiarazione del vettore di strutture (a proposito, fai vedere la struttura e la dichiarazione di array) o fai come hai scritto.

    L'unica cosa è che tutte quelle fflush non servono.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    11
    Posto tutto il listato per chiarezza suddivisio in due parti. L'unica cosa che non funziona del tutto è la funzione abbonamento che scade per prima.

    codice:
    #include<stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #define SIZE 20
    #define PERCENTUALE_MAX 100
    
    /* dichiarazione della struttura  - Struct - palestra */
    
    struct palestra 
    {
           char cognome[SIZE]; /*                          */      
           char nome[SIZE]; /*                          */
           int giorno; /*                          */
           int mese; /*                          */
           int anno; /*                          */
           char abbonamento[SIZE]; /*                          */
    };
    
    typedef struct palestra PALESTRA; /* nuovo nome tipo per struct palestra */
    
    /* Prototipi di funzione */
    
    void iniz(int dim,PALESTRA array [SIZE]); 
    void acquis_tast(int dim,PALESTRA array[SIZE]);
    void acquis_aut(int dim,PALESTRA array[SIZE]);
    void stampa(int dim,PALESTRA array[SIZE]);
    void sort(int dim,PALESTRA array[SIZE]);
    void ricerca(int dim,PALESTRA array[SIZE]);
    void calcolo_perc(int dimensione, PALESTRA array[SIZE]);
    
    main () 
    {
         PALESTRA dati[SIZE]; /* dichiara il vettore di elementi - dati - di tipo PALESTRA */
             
         int selezione, dimensione;
                         
         iniz(dimensione,dati); 
    
         do 
         {
             system("cls");
             printf("\n******** MENU' PRINCIPALE ********\n");
             printf("\n1. Per acquisire i dati");    
             printf("\n2. Stampare a video i dati");
             printf("\n3. Ordinare i dati per Cognome");
             printf("\n4. Stampa a video l'abbonamento dell'utente prossimo alla scadenza");
             printf("\n5. Calcolo della percentuale dei diversi tipi di abbonamento");
             printf("\n6. USCITA\n\n\n Selezione: ");
             scanf("%d",&selezione);    
         
             switch(selezione) 
             {
                    case 1:
                         system("cls");
                         do
                         {
                                system("cls");
                                printf("\n******** MENU' di ACQUISIZIONE ********\n");
                                printf("\n1. Per acquisire i dati da tastiera");    
                                printf("\n2. Per acquisire i dati di prova automaticamente");
                                printf("\n3. MENU' PRINCIPALE\n\n\n Selezione: ");
                                scanf("%d",&selezione);    
                                                       
                                switch(selezione)
                                {
                                       case 1:
                                            system("cls");
                                            do
                                            {
                                                   printf("\n********** Inizializzazione array *********\n\n\n");     
                                                   printf("Determinare la dimesione della array <max 20>: ");
                                                   scanf("%d",&dimensione);
                                                   if(dimensione == 0 || dimensione > SIZE) 
                                                   {
                                                       printf("\n\n++++++++++ errore ++++++++++++++\n\n");
                                                       system("\n\npause");
                                                   }
                                                   system("cls");
                                            } while(dimensione == 0 || dimensione >SIZE); 
         
                                            acquis_tast(dimensione, dati);
                                            
                                            
                                       break;
                                       
                                       case 2:
                                            system("cls");
                                            dimensione=5;
                                            
                                            iniz(dimensione,dati);
                                            acquis_aut(dimensione, dati);                                        
                                            
                                            system("pause");
                                       break;
                                       case 3:
                                       break;
                                       default:
                                       if(selezione == 0 || selezione >3)
                                       {
                                             system("cls");
                                             printf("\n\n\n+++++++++++++++ Errore nella selezione ++++++++++++++++++\n\n\n");
                                             system("pause");
                                       }
                                }
                         }while (selezione !=3);
    
                    break;
                    case 2:
                         system("cls");
                         
                         stampa(dimensione, dati);
                         
                         system("pause");
                    break;
             
                    case 3:
                         system("cls");
                         
                         sort(dimensione, dati);
                         
                         system("pause");
                    break;
             
                    case 4:
                         system("cls");
                         
                         ricerca(dimensione, dati);
                         
                         system("pause");
                    break;
                    
                    case 5:
                         system("cls");
                         
                         calcolo_perc(dimensione, dati);
                         
                         system("pause");
                    break;
                    
                    case 6:
                         break;
                         default:
                                 if(selezione == 0 || selezione >5)
                                 {
                                 
                                 system("cls");
                                 printf("\n\n\n+++++++++++++++ Errore nella selezione ++++++++++++++++++\n\n\n");
                                 system("pause");
                                                              
                                 }       
         
             }
             
         }
         while(selezione != 6);
              
       
    }

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.