Salve a tutti ragazzi, ho svolto il seguente esercizio: " Realizzare un array monodimensionale di record, un elenco degli alunni riportante cognome, nome e numero di giorni di presenza al corso "; quando ho eseguito il programma , sono incappato in un problema. inserendo da tastiera tutti i dati di tutti gli studenti, il programma mi stampa del cognome e del nome solo le prime due lettere. che cosa ho sbagliato?
Questo è il programma:
#include<stdio.h>
#include<string.h>
#define card 2
void legge(char campo[],int MAx){
char c;
int i=0;
int MAX=2;
while((c=getchar())!='\n' && (i<MAX)){
campo=c;
i++;
}
campo='\0';
}
struct corso{
char nome[30];
char cognome[30];
double matricola;
char presenze;
};
struct corso alunno[card];
main()
{ int i=0;
for(i=0;i<card;i++){
fflush(stdin);
printf("COGNOME:");
legge(alunno.cognome,30);
fflush(stdin);
printf("NOME:");
legge(alunno.nome,30);
fflush(stdin);
printf("PRESENZE:");
scanf("%d",&alunno.presenze);
fflush(stdin);
printf("\n\n"); }
for(i=0;i<card;i++)
{ printf("Cognome:%s\n",alunno.cognome);
printf("Nome:%s\n",alunno.nome);
printf("Presenze:%d\n\n",alunno.presenze);}
}