Page 637 - Informatica dalla A a Z
P. 637

[si mostri a video l’array così costruito]
           contenga una funzione compatibili() che, date due persone, restituisca vero se le due per-
           sone sono compatibili (intendendo con questo che esse sono di sesso diverso e la diffe-
           renza di età, riferita solo all’anno, non supera i 5 anni), o falso altrimenti;


           [si mostri a video un esempio d’uso della funzione con due persone scelte dall’array a vo-

           stro piacere]
           chieda all’utente, da console, cognome, nome, sesso e data di nascita
           in base a quanto ottenuto al punto precedente, scriva i dati delle persone compatibili con
           l’utente sia a video sia su un file binario di nome PARTNERS.DAT.


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



              #define NUMEROPERSONE 20
              #define DIMCOGNOME 21
              #define DIMNOME 21




              struct data {

                 int giorno, mese, anno;
              };


              struct persona {
                 char cognome[DIMCOGNOME], nome[DIMNOME], sesso;
                 struct data nascita;
              };







              /* ---------- domanda 1 -------- */


              void lettura(char nomefile[], struct persona v[], int* pindice){
                struct persona x;

                FILE *f = fopen(nomefile, "r");
                if (f==NULL) {
                 printf("Impossibile aprire file di ingresso");
                 exit(1); } /* se non riesce a creare il file
                         visualizza un messaggio di errore ed esce dal programma */



                                                            633
   632   633   634   635   636   637   638   639   640   641   642