Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: [c]Tipi strutturati

  1. #1

    [c]Tipi strutturati

    Salve, ho un problema con l'assegnazione di un tipo strutturato, vi spiego:
    Ho un Struct chiamata Giocatore di questo tipo:
    codice:
    struct _giocatore 
    {
    char cognome[5];
    char nome[5];
    int valore;
    };
    typedef struct _giocatore Giocatore;
    ho dichiarato un array di tipo Giocatore: Giocatore array_giocatori[88]

    ho poi assegnato a questi 88 giocatori valori casuali per nome, cognome e valore . Ora il mio problema è che devo creare varie SQUADRE contenente i giocatori..
    l'array squadra[8] (ho bisogno di creare 8 squadra contenenti 11 giocatori ognuna) che andrò a creare di che tipo deve essere per contenere i Giocatori (che a loro volta contengono il nome,cognome e valore)?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Potrebbe essere una struttura con un nome (il nome della squadra) e con un vettore di 11 interi contenenti l'indice del vettore array_giocatori.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Originariamente inviato da oregon
    Potrebbe essere una struttura con un nome (il nome della squadra) e con un vettore di 11 interi contenenti l'indice del vettore array_giocatori.
    Grazie per la risposta ho provato in questo modo:
    codice:
    struct _squadra
    {
       int player[11];
              };
           typedef struct _squadra Squadra;
    int player mi dovrebbe contenere l'indice dell'array_giocatore
    il nome della squadra non mi serve al fine dell'esecuzione.
    E' semplice assegnare valori interi a array_squadra.player ma non ho capito come riutilizzarli... ti faccio un esempio ogni squadra ha VALORE determinato dal valore dei singoli giocatori (vedi struct post precedente) come faccio a ricavarne il risultato?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Se s è una squadra, allora

    codice:
    int ixp, valsq=0;
    for(ixp=0; ixp<11; ixp++)
        valsq += array_giocatori[s.player[ixp]].valore;
    in valsq hai il suo valore.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Originariamente inviato da oregon
    Se s è una squadra, allora

    codice:
    int ixp, valsq=0;
    for(ixp=0; ixp<11; ixp++)
        valsq += array_giocatori[s.player[ixp]].valore;
    in valsq hai il suo valore.
    Ah perfetto era questo che cercavo di capire - array_giocatori[s.player[ixp]].valore - sei stato gentilissimo Grazie Mille !

  6. #6
    Originariamente inviato da oregon
    Se s è una squadra, allora

    codice:
    int ixp, valsq=0;
    for(ixp=0; ixp<11; ixp++)
        valsq += array_giocatori[s.player[ixp]].valore;
    in valsq hai il suo valore.
    Oregon scusami se ci ritorno ora, ho usato questo codice :

    codice:
    int contatore, valoresquadra;
    for(contatore=0; contatore<11; contatore++)
    {
    valoresquadra += array_giocatori[array_squadra[0].player[contatore]].valore;
    }
    Questo pezzo di codice passa al compilatore , ma quando va in esecuzione il Dev si blocca e sono costretto a ravviarlo. Se elimino questa porzione di codice il programma gira ed esegue normalmente mi sapresti dire cosa ho sbagliato?

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    L'unico errore che vedo è in rosso

    codice:
    int contatore, valoresquadra=0;
    for(contatore=0; contatore<11; contatore++)
    {
       valoresquadra += array_giocatori[array_squadra[0].player[contatore]].valore;
    }
    ma se si blocca, allora il problema è un altro.

    O array_squadra non è dimensionato correttamente, oppure il valore di

    array_squadra[0].player[contatore]

    non è corretto. Altrimenti (ma non mi pare realistico) è un bug di Dev (che ti consiglio di abbandonare comunque) ...

    Prova a debuggare un po' ... controlla tutti i valori di

    array_squadra[0].player[contatore]

    visualizzandoli ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Non mi sembrano ci siano errori ,queste sono le parti dichiarative :
    codice:
    struct _giocatore 
    {
    char cognome[5];
    char nome[5];
    int valore;
    };
    typedef struct _giocatore Giocatore;
    
    struct _squadra
    {
       int player[11];
           };
           typedef struct _squadra Squadra;
    codice:
    int main()
    {
         srand((unsigned int)time(0));
        Giocatore array_giocatori[11];
        Squadra array_squadra[8];

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ma hai inizializzato correttamente tutti i valori in

    array_squadra[0].player[...]

    o hai lasciato valori casuali?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Originariamente inviato da oregon
    Ma hai inizializzato correttamente tutti i valori in

    array_squadra[0].player[...]

    o hai lasciato valori casuali?
    Ho risolto il problema del blocco provando ad assegnare una paio di valori in questo modo:
    array_squadra[0].player[0]=2;
    array_squadra[0].player[1]=3;

    ma purtroppo il testo mi chiede le squadre devono essere formate in modo casuale, e se provassi ad usare rand()%88 in modo da scegliere casualmente un indice di un giocatore tra gli 88 magari andrebbe bene ma non evito che un giocatore possa essere scelto più volte in una stessa squadra...

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.