Struct

di il
5 risposte

Struct

#include <stdio.h>
#include<stdlib.h>

int main ( int argc , char *argv[])
{
int x;
struct persona
{
char nome[20];
char ruolo[20];

};
struct persona giocatore ;

do
{
printf("per inserire giocatore premere 1");
scanf("%d",&x);
printf("nome giocatore: ");
scanf("%s",&giocatore.nome);
printf("ruolo giocatore: ");
scanf("%s",giocatore.ruolo);


}

while(x == 1);
printf("\n\n La squadra e' composta da: %s ",giocatore.nome);

return 0 ;
}
Ciao a tutti, avevo bisogno di un aiuto su questo programma.
Se volessi che nell'ultimo printf il programma mi facesse vedere tutti i nomi che ho inserito nel do-while come posso fare ?
Scusate se sono stato poco chiaro e grazie in anticipo

5 Risposte

  • Re: Struct

    Durante l'inserimento utilizzi sempre la stessa variabile. Quindi tutti i dati precedenti sono persi e rimane solamente l'ultimo.

    Devi usare un array di struct persona e inserire un giocatore in ogni elemento.
  • Re: Struct

    Ok grazie mille riusciresti a farmi un esempio?
  • Re: Struct

    Penso che devresti creare una lista concatenata e allocare la memoria con malloc()
  • Re: Struct

    Gianalberto97 ha scritto:


    ok grazie mille riusciresti a farmi un esempio?
    Ma un esempio di che? Forza ...

    Tu hai usato una variabile giocatore e invece questa variabile deve essere un array ...
  • Re: Struct

    L'ho scritto un pò di fretta ma l'ho provato e sembra funzionare. Prendilo come esempio e chiedi se hai dei dubbi:
    typedef struct giocatore_s{ /* struttura che contiene i dati dei giocatori*/
    	int numero_maglia;
    	char nomegiocatore[MAXNOME], ruolo[MAXNOME];
    	}giocatore_t;
    	
    int main ( int argc , char *argv[]){
    	giocatore_t giocatore[NUMEROGIOCATORI]; /* Array che contiene la struttura di ogni giocatore */
    	int i; /* contatore per il ciclo for */
    	for (i=0; i<NUMEROGIOCATORI; i++){ /* Ciclo for per inserire i dati di ogni giocatore */
    		printf("Inserire il numero del giocatore\n");
    		scanf("%d%", &giocatore[i].numero_maglia);
    		printf ("Inserire il nome del giocatore\n");
    		scanf("%s", &giocatore[i].nomegiocatore);
    		printf ("Inserire il ruolo del giocatore\n");
    		scanf("%s", &giocatore[i].ruolo);
    	}
    	printf("\nLa squadra e' composta da:\n");
    	for(i=0; i<NUMEROGIOCATORI; i++){
    		printf("%d %s %s\n", giocatore[i].numero_maglia, giocatore[i].nomegiocatore, giocatore[i].ruolo);
    	}
    	return 0 ;
    }
    
Devi accedere o registrarti per scrivere nel forum
5 risposte