home *** CD-ROM | disk | FTP | other *** search
/ ftp.disi.unige.it / 2015-02-11.ftp.disi.unige.it.tar / ftp.disi.unige.it / pub / .person / CataniaB / teach-act / testi-esami / labo-7.00 / parte2-1.c < prev    next >
C/C++ Source or Header  |  2001-01-29  |  895b  |  81 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define MAX 100
  4.  
  5.  
  6. /* tipi */
  7.  
  8. typedef unsigned char bool;
  9. typedef int elem;
  10.  
  11. typedef struct tsucc {
  12.                         elem info[MAX];
  13.                         int lg;
  14.                     } succ;
  15.  
  16. /* prototipi */
  17.  
  18. succ empty();
  19. void insert(elem,succ *);
  20. void print(succ);
  21.  
  22. /* main */
  23.  
  24. int main()
  25. {
  26.     succ s = empty();
  27.     int m;
  28.     FILE *fp;
  29.     char nome_f[20];
  30.     
  31.     printf("\nInserire il nome del file ");
  32.     scanf("%s",nome_f);
  33.  
  34.     fp=fopen(nome_f,"r");
  35.  
  36.     while (fscanf(fp,"%d",&m) && (m!=-1))
  37.     {
  38.         insert(m,&s);
  39.     }
  40.     printf("\nLa successione e': ");
  41.     print(s);
  42. }
  43.  
  44.  
  45.  
  46.  
  47. succ empty()
  48. {
  49.   succ s;
  50.   s.lg = 0;
  51.   return s;
  52. }
  53.  
  54. void insert(elem el,succ *s)
  55. {
  56.     if (s->lg == MAX)
  57.         {
  58.             printf("Errore: spazio insufficiente");
  59.             exit(EXIT_FAILURE);
  60.         }
  61.   s->info[s->lg] = el;
  62.   s->lg++;
  63. }
  64.  
  65.  
  66. void print(succ s)
  67. {
  68.   int i;
  69.   printf("{ ");
  70.   for (i=0;i< s.lg;i++)
  71.     { 
  72.         printf("%d ",s.info[i]);
  73.     }
  74.   printf("}\n");
  75. }
  76.  
  77.  
  78.  
  79.  
  80.  
  81.