Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337

    [C] array di struct e funzioni

    il codice sembra funzionare, ho solo dei dubbi nel passagio dei parametri in questo caso la i

    codice:
    #include <stdio.h>
    #define max 2
    int i;
    typedef struct {char nome[30];
                   char cognome[30];
    			   } persona;
    
    persona persone[max];
    
    void stampa_nome(int i);
    void prendi_nome(int i);
    void stampa_cognome(int i);
    void prendi_cognome(int i);
    
    void main(){
    
    	for (i=0; i<max; ++i){
    
    prendi_nome(i);qui è giusto mettere i e non int i ?
    prendi_cognome(i);qui è giusto mettere i e non int i ?
    stampa_nome(i);qui è giusto mettere i e non int i ?
    stampa_cognome(i);qui è giusto mettere i e non int i ?
    }
    
    }
    void stampa_nome(i){qui è giusto mettere i e non int i ?
    printf("il nome utende è; %s\n", persone[i].nome);
    }
    
    void prendi_nome(i){qui è giusto mettere i e non int i ?
    printf("inserisci nome utente\n");
    scanf ("%s", persone[1].nome);
    }
    
    void stampa_cognome(i){qui è giusto mettere i e non int i ?
    printf("il cognome utende è; %s\n", persone[i].cognome);
    }
    
    void prendi_cognome(i){ //qui è giusto mettere i e non int i ? 
    printf("inserisci cognome utente\n");
    scanf ("%s", persone[i].cognome);
    }
    inoltre essendo questi puntatoti, non è necessario ritornare nulla, giusto?

    grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Vedo che ancora hai un po' di confusione ...

    Intanto il codice corretto

    codice:
    #include <stdio.h>
    
    #define MAX 2   // E' meglio utilizzare il maiuscolo per le costanti
    
    typedef struct
    {
      char nome[30];
      char cognome[30];
    } persona;
    
    persona persone[MAX];
    
    // il nome usato per l'argomento non deve essere uguale a quello
    // della variabile passata ... qui ho usato arg
    void stampa_nome(int arg);
    void prendi_nome(int arg);
    void stampa_cognome(int arg);
    void prendi_cognome(int arg);
    
    void main()
    {
      int i;  // questa variabile puo' essere dichiara nel main
    
      for (i=0; i<MAX; ++i)
      {
        // quando richiami le funzioni, devi passare gli argomenti attuali
        // tramite variabili e/o espressioni compatibili ...
        prendi_nome(i);
        prendi_cognome(i);
        stampa_nome(i);
        stampa_cognome(i);
      }
    }
    
    // il nome dell'argomento non deve essere uguale 
    // a quello della variabile usata per passare il valore
    // Ho usato arg ed e' solo importante che arg sia
    // usato all'interno della funzione ... il compilatore
    // provvedera' a copiare il valore di i in quello di arg
    void stampa_nome(int arg)
    {
      printf("il nome utente è: %s\n", persone[arg].nome);
    }
    
    void prendi_nome(int arg)
    {
      printf("inserisci nome utente\n");
      scanf ("%s", persone[arg].nome);
    }
    
    void stampa_cognome(int arg)
    {
      printf("il cognome utente è: %s\n", persone[arg].cognome);
    }
    
    void prendi_cognome(int arg)
    {
      printf("inserisci cognome utente\n");
      scanf ("%s", persone[arg].cognome);
    }
    ... leggi anche le note accanto alle righe ...

    E leggi un buon libro per le basi di C ...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337
    perfetto grazie, (putroppo non ho un buon libro di c, ne uso 4 ma ognuno carente, in qualcosa)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.