Advertisement
alexarcan

PT_lab2_struct_animale_MALLOC

Mar 3rd, 2014
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.41 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<ctype.h>
  4. //1-mamifer, 2-insectă, 3-pește, 4-pasăre);
  5. typedef struct
  6. {
  7. int flag;
  8. int ani;
  9. union{
  10.         struct{
  11.         int gestatie;
  12.         int pui;
  13.         }mamifer;
  14.        
  15.         struct
  16.         {
  17.         int picioare;
  18.         int zboara;//1-da, 0-nu
  19.         int periculoasa;//1-da, 0-nu
  20.         }insecta;
  21.        
  22.         struct
  23.         {
  24.         int apa;//1-sarata,0-dulce
  25.         int adancime;
  26.         int viteza;
  27.         }peste;
  28.        
  29.         struct
  30.         {
  31.         int anvergura;
  32.         int altitudinea;
  33.         int viteza;
  34.         }pasare;
  35.        
  36.        
  37.      }tip;
  38.  
  39. }vietuitoare;
  40.  
  41.  
  42.  
  43. int main(void)
  44. {
  45.  int nr=0;
  46.  int nr_anim;
  47.  printf("Dati nr de animale:");
  48.  scanf("%d",&nr_anim);putchar('\n');
  49.  do{
  50.     vietuitoare *a;
  51.     a=(vietuitoare *)malloc(sizeof(vietuitoare *));
  52.     if (!a) {
  53.             printf("Eroare alocare memorie.\n");
  54.             exit(EXIT_FAILURE);
  55.             }
  56.  
  57.  
  58.     int flag;   putchar('\n');
  59.     printf("Alegeti: 1-mamifer, 2-insectă, 3-pește, 4-pasăre\n");
  60.     if(scanf("%d",&flag)==1)
  61.     {
  62.         if(flag==1)
  63.             {
  64.                 printf("Introduceti perioada de gestatie: ");
  65.                 scanf("%d",&a->tip.mamifer.gestatie);
  66.                 putchar('\n');
  67.                 printf("Introduceti numărul mediu de pui pe care îi naște: ");
  68.                 scanf("%d",&a->tip.mamifer.pui);
  69.                 putchar('\n');
  70.                
  71.                 //afisarea:
  72.                 printf("REZULTATE: \n");
  73.                 printf("Perioada de gestatie: %d",a->tip.mamifer.gestatie);putchar('\n');
  74.                 printf("Nr de pui: %d",a->tip.mamifer.pui);putchar('\n');
  75.                
  76.             }
  77.         if(flag==2)
  78.             {
  79.                 printf("Introduceti numărul de picioare: ");
  80.                 scanf("%d",&a->tip.insecta.picioare);
  81.                 putchar('\n');
  82.                 printf("Poate să zboare?1-da/0-nu ");
  83.                 scanf("%d",&a->tip.insecta.zboara);
  84.                 putchar('\n');
  85.                 printf("Este periculoasă sau nu pentru om;?1-da/0-nu ");
  86.                 scanf("%d",&a->tip.insecta.periculoasa);
  87.                 putchar('\n');
  88.                
  89.                 //afisarea:
  90.                 printf("REZULTATE: \n");
  91.                 printf("Nr de picioare: %d",a->tip.insecta.picioare);putchar('\n');
  92.                 printf("Poate să zboare?1-da/0-nu:  %d",a->tip.insecta.zboara);putchar('\n');
  93.                 printf("Este periculoasă sau nu pentru om;?1-da/0-nu:  %d",a->tip.insecta.periculoasa);putchar('\n');
  94.             }
  95.         if(flag==3)
  96.             {
  97.                 printf("Introduceti tipul de apă: 1-sărată/0-dulce: ");
  98.                 scanf("%d",&a->tip.peste.apa);
  99.                 putchar('\n');
  100.                 printf("Adâncimea maximă la care se poate întâlni ");
  101.                 scanf("%d",&a->tip.peste.adancime);
  102.                 putchar('\n');
  103.                 printf("Viteza maximă de înot: ");
  104.                 scanf("%d",&a->tip.peste.viteza);
  105.                 putchar('\n');
  106.                
  107.                 //afisarea:
  108.                 printf("REZULTATE: \n");
  109.                 printf("Tip apa(1-sarata,0-dulce): %d",a->tip.peste.apa);putchar('\n');
  110.                 printf("Adâncimea maximă:  %d",a->tip.peste.adancime);putchar('\n');
  111.                 printf("Viteza maximă de inot:  %d",a->tip.peste.viteza);putchar('\n');
  112.             }
  113.         if(flag==4)
  114.             {
  115.                 printf("Introduceti anvergura aripilor: ");
  116.                 scanf("%d",&a->tip.pasare.anvergura);
  117.                 putchar('\n');
  118.                 printf("Altitudinea maximă de zbor: ");
  119.                 scanf("%d",&a->tip.pasare.altitudinea);
  120.                 putchar('\n');
  121.                 printf("Viteza maximă de zbor: ");
  122.                 scanf("%d",&a->tip.pasare.viteza);
  123.                 putchar('\n');
  124.                
  125.                 //afisarea:
  126.                 printf("REZULTATE: \n");
  127.                 printf("anvergura aripilor:: %d",a->tip.pasare.anvergura);putchar('\n');
  128.                 printf("Altitudinea maximă:  %d",a->tip.pasare.altitudinea);putchar('\n');
  129.                 printf("Viteza maximă de zbor:  %d",a->tip.pasare.viteza);putchar('\n');
  130.             }
  131.     nr++;
  132.     }
  133.    
  134.     }while(nr<nr_anim);
  135.     //free(a);
  136.    
  137.     return 0;
  138.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement