Advertisement
Adytzu04

l11p1

May 8th, 2012
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.07 KB | None | 0 0
  1. //head
  2. #ifndef L11P1_H_
  3. #define L11P1_H_
  4.  
  5.  struct _DATA{
  6.      int zi, luna,an,zian;
  7.  };
  8. typedef struct _DATA DATA;
  9. void f1(DATA *d);
  10. void f2(DATA *d);
  11. int isBisect(int an);
  12. void *xmalloc(size_t nrOcteti);
  13.  
  14. #endif /* L11P1_H_ */
  15.  
  16. //c
  17.  
  18. #include <stdio.h>
  19. #include <stdlib.h>
  20. #include "l11p1.h"
  21.  
  22. int isBisect(int an)
  23. {
  24.     if((an%4==0 && an%100!=0)||an%400==0)
  25.         return 1;
  26.     return 0;
  27. }
  28.  
  29. void *xmalloc(size_t nrOcteti)
  30.         {
  31.                 void *p;
  32.                 p = malloc(nrOcteti);
  33.                 if(p==0)
  34.                 {
  35.                         fprintf(stderr,"Memorie insuficienta\n");
  36.                         exit(EXIT_FAILURE);
  37.                 }
  38.                 return p;
  39.         }
  40.  
  41. void f1(DATA *d)
  42. {
  43.     int z1[12]={31,28,31,30,31,30,31,31,30,31,30,31};
  44.     int z2[12]={31,29,31,30,31,30,31,31,30,31,30,31};
  45.  
  46.     if(isBisect(d->an)==1)
  47.  
  48.     {
  49.         d->zian=0;
  50.         d->zian+=d->zi;
  51.         d->luna--;
  52.  
  53.         while(d->luna)
  54.  
  55.         {
  56.             d->zian+=z2[d->luna-1];
  57.             d->luna--;
  58.         }
  59.     }
  60.  
  61.     else
  62.  
  63.     {
  64.         d->zian=0;
  65.         d->zian+=d->zi;
  66.         d->luna--;
  67.  
  68.         while(d->luna)
  69.  
  70.         {
  71.             d->zian+=z1[d->luna-1];
  72.             d->luna--;
  73.         }
  74.  
  75.     }
  76.      printf("%d",d->zian);
  77. //  d=(DATA *)xmalloc(sizeof(DATA));
  78. }
  79.  
  80. void f2(DATA *d)
  81. {
  82.     int z1[12]={31,28,31,30,31,30,31,31,30,31,30,31};
  83.     int z2[12]={31,29,31,30,31,30,31,31,30,31,30,31};
  84.  
  85.     d->luna=0;
  86.     d->zi=0;
  87.  
  88.     if(isBisect(d->an)==1)
  89.  
  90.     {
  91.         while(d->zian)
  92.  
  93.         {
  94.             if(d->zian<=31)
  95.  
  96.             {
  97.                 d->luna++;
  98.                 d->zi=d->zian;
  99.                 d->zian=0;
  100.  
  101.             }
  102.             else
  103.             {
  104.                 d->luna++;
  105.                 d->zian-=z2[d->luna-1];
  106.             }
  107.         }
  108.     }
  109.  
  110.     else
  111.  
  112.     {
  113.         while(d->zian)
  114.  
  115.                 {
  116.                     if(d->zian<=31)
  117.  
  118.                     {
  119.                         d->luna++;
  120.                         d->zi=d->zian;
  121.                         d->zian=0;
  122.  
  123.                     }
  124.                     else
  125.                     {
  126.                         d->luna++;
  127.                         d->zian-=z1[d->luna-1];
  128.                     }
  129.                 }
  130.  
  131.     }
  132.          printf("zi=%d, luna=%d",d->zi,d->luna);
  133.         d=(DATA *)xmalloc(sizeof(DATA));
  134.     }
  135.  
  136. //main
  137.  
  138. #include <stdio.h>
  139. #include <stdlib.h>
  140. #include "l11p1.h"
  141.  
  142. int main(void)
  143. {
  144.  
  145.     DATA d;
  146.     //d.zi=8;
  147.     //d.luna=5;
  148.     d.an=2012;
  149.     //f1(&d);
  150.     d.zian=129;
  151.  
  152.     f2(&d);
  153.     return 0;
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement