Salve a tutti. Il testo del mio problema è questo:
Un programma in linguaggio C deve gestire i dati degli iscritti ad un club escursionistico.
Per rappresentare un iscritto viene definito il tipo di dato struct iscritto:
Il numero massimo di iscritti al club è dato dalla costante MAXI (definita mediante lacodice:struct iscritto{ char nome[30]; // nome dell’iscritto char cognome[30]; // cognome int eta; // età int numtessera; // numero di tessera };
direttiva #define). Il club viene rappresentato mediante il seguente tipo di dato:
QUESITO 1: si scriva una funzione che, ricevendo in ingresso un parametro di tipo structcodice:struct club{ char nome[30]; // nome del club int numiscritti; // numero di iscritti effettivi struct iscritto iscritti[MAXI]; // insieme degli iscritti };
club, ne acquisisce da tastiera il nome e imposta il numero di iscritti a 0.
QUESITO 2: si scriva una funzione che, ricevendo in ingresso un parametro di tipo struct
club, aggiunge un nuovo iscritto acquisendone i dati da tastiera. Il numero di tessera deve
essere assegnato progressivamente (1 per il primo iscritto, 2 per il secondo, ecc.)
E questa è la soluzione che ho provato a dare (con scarsi risultati ):
Mi sapreste dare un aiutino a gestire la grammatica del mio codice?codice:#include<stdio.h> #include<stdlib.h> #define MAXI 10 struct iscritto { char nome[30]; char cognome[30]; int eta; int numtessera; }; struct club{ char nome[30]; int numiscritti; struct iscritto iscritti[MAXI]; }; void acquisizione(struct club n){ n.numiscritti=0; scanf("%d",&n.nome); } void registrazione(struct club n){ n.numiscritti=1; n.iscritti[10].numtessera=0; if(n.numiscritti<=MAXI){ scanf("%s",n.iscritti[n.numiscritti].nome); scanf("%s",n.iscritti[n.numiscritti].cognome); scanf("%d",&n.iscritti[n.numiscritti].eta); n.iscritti[n.numiscritti].numtessera=n.iscritti[n.numiscritti].numtessera +1; n.numiscritti=n.numiscritti+1; } } int main(int argcv, char *argv[]){ struct club clu; acquisizione(clu); printf("il numiscritti e' %d\n",clu.numiscritti); printf("Il nome del club e' %d\n",clu.nome); registrazione(clu); printf("Nome: %s\n",clu.iscritti[clu.numiscritti].nome); printf("Cognome: %s\n",clu.iscritti[clu.numiscritti].nome); printf("Eta': %d",clu.iscritti[clu.numiscritti].eta); system("pause"); }
Grazie in anticipo

Rispondi quotando
