Salve a tutti. Ho un problema con le struct quando vado a stampare la data. Qualcuno mi può aiutare? Grazie a tutti anticipatamente
CODICE :
/*
Usare le Struct;
2 Struct: Alunni,Data
Usare le funzioni: Inserimento,Modifica data e per cognome,Stampa,Ordinamento,Ricerca per data e per cognome
*/
#include <stdio.h>
#define MAX 100
typedef struct{
int giorno;
int mese;
int anno;
}data;
typedef struct{
char cognome [25];
char nome [25];
data data_nascita;
float media;
}studente;
// prototipi di funzione
int selezione(int sel);
void inserimento(studente vettstud[],int x);
void stampa(studente vettstud[],int size);
//il programma inizia dalla funzione main
int main()
{int sel,scelta,decisione,x,contr,size,i;
contr=0;
studente vettstud[MAX];
printf("*** Benvenuto nel programma ***\n\n");
printf("Inserisci il numero di studenti da prendere in considerazione (MAX 100) :");
scanf("%d",&size);
if(size > 100)
{
while(size > 100)
{printf("\n\nInserisci il numero di studenti da prendere in considerazione (MAX 100) :");
scanf("%d",&size);
}
}
sel=selezione(scelta);
while(contr==0)
{
switch (sel)
{
case 1:
printf("\n\nQuanti studenti vuoi inserire? :");
scanf("%d",&x);
inserimento(vettstud,x);
break;
case 2:
printf("\n\n*** Stampo gli studenti ***");
stampa(vettstud,size);
break;
case 6:
printf("Esco...");
contr=1;
break;
default:
printf("\nAttenzione! Valore inserito errato!\n");
break;
}
sel=selezione(scelta);
}
system("CLS");
system("PAUSE");
//fine del programma
}
int selezione(int sel)
{
printf("\nProgramma studenti\n\n");
printf("[1].Inserimento studenti\n[2].Stampa studenti\n[3].Ordinamento studenti\n[4].Modifica per data o cognome\n[5].Ricerca per data o per data o per congnome\n[6].Esci dal programma\n\nInserisci la tua scelta :");
scanf("%d",&sel);
return sel;
}
void inserimento(studente vettstud[],int x)
{ int i;
for(i=0;i<x;i++)
{
printf("\nInserisci il cognome del %d studente :",i);
scanf("%s",&vettstud[i].cognome);
fflush(stdin);
printf("\nInserisci il nome del %d studente :",i);
scanf("%s",&vettstud[i].nome);
fflush(stdin);
printf("\nInserisci la data di nascita (gg-mm-aaaa) :");
scanf("%d-%d-%d",&vettstud[i].data_nascita.giorno,&vettstud[i].data_nascita.mese,&vettstud[i].data_nascita.anno);
printf("\nInserisci la media del %d studente:",i);
scanf("%f",&vettstud[i].media);
printf("\n**********\n");
}
printf("\n\nInserimento completato! \n\n");
printf("%d-%d-%d",&vettstud[0].data_nascita.giorno,&vettstud[0].data_nascita.mese,&vettstud[0].data_nascita.anno);
}
void stampa(studente vettstud[],int size)
{ int i;
for (i=0;i<size;i++)
{
printf("\n\t%s",&vettstud[i].cognome);
printf("\t\t\%s",&vettstud[i].nome);
printf("\t\t\%d-%d-%d",&vettstud[i].data_nascita.giorno,&vettstud[i].data_nascita.mese,&vettstud[i].data_nascita.anno);
}
printf("\n\n***Stampa completata!***\n\n");
}