Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.89 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. typedef struct node *link;
  5.  
  6. typedef struct
  7. {    char *nom;
  8.      char *cognom;
  9.      char codice[6+1];
  10.      char *categoria;
  11.      char data[11];
  12.      int ore_all;
  13. }atleta;
  14.  
  15.  
  16. struct node
  17. {
  18.     link next;
  19.     atleta ATL;
  20. };
  21. link initList();
  22. atleta inAtleta(FILE *in);
  23. link NewNode(atleta bobbo);
  24. link listInTail(link h,int val);
  25. void stampaLista(link head);
  26. void InserisciATL(FILE *in, link nodo);
  27. void insTail(link *head,link x);
  28. void stampaAtleta(atleta x);
  29. int main()
  30. {
  31. int i=0,N_ATL=0;
  32. link head,q;
  33. head=initList();
  34.  
  35. atleta tmp;
  36. FILE*in;
  37. in=fopen("atleti.txt","r");
  38. if(in==NULL) exit(50);
  39. fscanf(in,"%d",&N_ATL);
  40. for(i=0;i<N_ATL;i++)
  41. {
  42.  
  43.     tmp=inAtleta(in);
  44.     q=NewNode(tmp);
  45.     insTail(&head,q);
  46. }
  47. stampaLista(head);
  48. fclose(in);
  49.  
  50.     return 0;
  51. }
  52.  
  53. link NewNode(atleta bobbo)
  54. {
  55.     link x=malloc(1*sizeof(*x));
  56.     if(x==NULL) return NULL;
  57.     else
  58.         {
  59.             x->ATL=bobbo;
  60.             x->next=NULL;
  61.         }
  62.     return x;
  63. }
  64.  
  65.  
  66. void stampaLista(link head){
  67. if(head==NULL) return;
  68. stampaAtleta(head->ATL);
  69. stampaLista(head->next);
  70. }
  71.  
  72. void insTail(link *head,link x){
  73.     link p;
  74.     if((*head)==NULL){
  75.             printf("La lista e' vuota\n");
  76.             (*head)=x;
  77.         }
  78.     else{
  79.         for(p=(*head);p->next!=NULL;p=p->next);
  80.         p->next=x;
  81.         x->next=NULL;
  82.     }
  83. }
  84.  
  85. link initList(){
  86.         link tmp;
  87.         tmp=NULL;
  88.         return tmp;
  89.         }
  90.  
  91. void stampaAtleta(atleta x)
  92. {
  93. printf("%s %s %s %s %s %d\n",x.codice,x.nom,x.cognom,x.categoria,x.data,x.ore_all);
  94. return;
  95. }
  96.  
  97. atleta inAtleta(FILE *in)
  98. {
  99.     char str1[100+1],str2[100+1],str3[100+1];
  100.     atleta x;
  101.     fscanf(in,"%s %s %s %s %s %d",x.codice,str1,str2,str3,x.data,&x.ore_all);
  102.     x.nom=strdup(str1);
  103.     x.cognom=strdup(str2);
  104.     x.categoria=strdup(str3);
  105.     return x;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement