Eccolo:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef char string[20];
typedef struct filmNode{
string titolo;
string genere;
string regista;
int anno;
struct filmNode *nextPtr;
}FilmNode;
typedef FilmNode *FilmNodePtr;
void insert(FilmNodePtr *lPtr);
void elencaFilm(FilmNodePtr lPtr);
int main(void){
FilmNodePtr lPtr=NULL;
insert(&lPtr);
insert(&lPtr);
insert(&lPtr);
elencaFilm(lPtr);
return 0;
}
void insert(FilmNodePtr *lPtr){
FilmNodePtr newPtr;
newPtr = (FilmNodePtr)malloc(sizeof(FilmNode));
if(newPtr != NULL){
printf("inserire il titolo del film: \n");
scanf("%19s",(*lPtr)->titolo);
printf("inserire il genere del film: \n");
scanf("%14s",(*lPtr)->genere);
printf("inserire il nome del regista del film: \n");
scanf("%19s",(*lPtr)->regista);
printf("inserire l'anno di produzione del film: \n");
scanf("%d",&((*lPtr)->anno));
newPtr->nextPtr = *lPtr;
*lPtr = newPtr;
}
else printf("memoria non disponibile.\n");
}
void elencaFilm(FilmNodePtr lPtr){//elenca i film nel la lista inbase al titolo
while(lPtr != NULL){
printf("%s, ",lPtr->titolo);
lPtr = lPtr->nextPtr;
}
printf("\n");
}