#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 10 struct alunno { char nome[30]; char cognome[30]; char classe[5]; char data[10]; }; void analisi(const struct alunno lista[], const int n, const int annorif); int main(int argc, char** argv) { setvbuf(stdout, 0, _IONBF, 0); struct alunno elenco[MAX]; int n=0; printf("introdurre numero studenti < %d\n", MAX); scanf("%d", &n); // inserimento int i=0; for(i=0;i<n; i++) { printf("introdurre nome studente %d-esimo\n", i); scanf("%s", elenco[i].nome); printf("introdurre cognome studente %d-esimo\n", i); scanf("%s", elenco[i].cognome); printf("introdurre classe studente %d-esimo\n", i); scanf("%s", elenco[i].classe); printf("introdurre data nascita dd.mm.yyyy studente %d-esimo\n", i); scanf("%s", elenco[i].data); } // controllo su data di nascita analisi(elenco, n, 2004); return (EXIT_SUCCESS); } void analisi(const struct alunno lista[], const int n, const int annorif) { int i; for(i=0; i<n; i++) { char classe[2]; // prendo la classe strncpy(classe, lista[i].classe, 1); classe[1] = '\0'; int iclasse = atoi(classe); printf("classe %d-esimo : %s, %d\n", i, classe, iclasse); char anno[5]; //prendo l'anno strncpy(anno, lista[i].data+6, 4); anno[5] = '\0'; int ianno = atoi(anno); printf("anno %d-esimo : %s, %d\n", i, anno, ianno); // controllo se bocciato if (annorif-ianno > iclasse) { printf("%s %s %s %s bocciato\n", lista[i].nome, lista[i].cognome, lista[i].classe, lista[i].data); } } }