STRUTTURE

di il
6 risposte

STRUTTURE

Buonasera a tutti. Ho un dubbio banale. Un codice del tipo (in linguaggio C):


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

struct persona
{
char nome[30];
int eta;
};

struct club
{
int numero;
struct persona iscritto[100];
};

void inputclub(struct club c)
{
printf("Inserisci il numero di persone\n");
scanf("%d", &c.numero);
int i;
for(i=0; i<c.numero; i++)
{
printf("Inserisci il nome della persona:\n");
scanf("%s", c.iscritto.nome);
printf("Inserisci la sua eta:\n");
scanf("%d", &c.iscritto.eta);
printf("\n\n");
}
}

int main()
{
struct club c;
struct persona p;
inputclub(c);
strcpy(p.nome, c.iscritto[0].nome);
p.eta = c.iscritto[0].eta;
printf("Nome: %s\nEta: %d\n", p.nome, p.eta);
return 0;
}



Non riesco a capire come mai non mi stampa i dati corretti della persona p. Grazie in anticipo!

6 Risposte

  • Re: STRUTTURE

    Per favore seleziona il codice e clicca sul pulsante "</>", altrimenti è illeggibile.

    Comunque guarda bene il modo in cui hai passato c alla funzione.
  • Re: STRUTTURE

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    struct persona
    {
    char nome[30];
    int eta;
    };
    
    struct club
    {
    int numero;
    struct persona iscritto[100];
    };
    
    void inputclub(struct club c)
    {
    printf("Inserisci il numero di persone\n");
    scanf("%d", &c.numero);
    int i;
    for(i=0; i<c.numero; i++)
    {
    printf("Inserisci il nome della persona:\n");
    scanf("%s", c.iscritto.nome);
    printf("Inserisci la sua eta:\n");
    scanf("%d", &c.iscritto.eta);
    printf("\n\n");
    }
    }
    
    int main()
    {
    struct club c;
    struct persona p;
    inputclub(c);
    strcpy(p.nome, c.iscritto[0].nome);
    p.eta = c.iscritto[0].eta;
    printf("Nome: %s\nEta: %d\n", p.nome, p.eta);
    return 0;
    }
  • Re: STRUTTURE

    Guarda bene la dichiarazione di inputclub. Come viene passato il parametro c?
  • Re: STRUTTURE

    Dovrei passarlo per indirizzo?
    Del tipo:
    void inputclub(struct club *c)
  • Re: STRUTTURE

    Ciaobello00 ha scritto:


    Dovrei passarlo per indirizzo?
    Del tipo:
    void inputclub(struct club *c)
    Esatto.
  • Re: STRUTTURE

    Grazie mille!
Devi accedere o registrarti per scrivere nel forum
6 risposte