Advertisement
Theerayut

rain

Dec 10th, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.46 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3. typedef struct
  4. {
  5.     int d,m,y;
  6.     float rain;
  7.     float max,min; 
  8. }data;
  9. typedef struct
  10. {
  11.     int day,month,year;
  12. }Date;
  13.  
  14. void inputYearTable(data ME[] , int n);
  15. void calAvgTemp(data ME[ ] , int n);
  16. float findMinTemp(data ME[ ], int n );
  17. void accumRainMonthly(data ME[ ] , int n);
  18. data findDateMeteo(data ME[], int n,Date sd);
  19. int main()
  20. {
  21.     data h[50];
  22.     int n;
  23.     float j;
  24.     printf("N : ");
  25.     scanf("%d",&n);
  26.     inputYearTable(h,n);
  27.     calAvgTemp(h,n);
  28.     j=findMinTemp(h,n);
  29.     accumRainMonthly(h,n);
  30.     Date sd = {12,05,2013} ;
  31.     data m;
  32.     m = findDateMeteo(h,n,sd);
  33.     if (sd.day == 0)
  34.     {
  35.         printf("Not found meteo record for date %d/%d/%d\n",sd.day, sd.month, sd.year);
  36.     }
  37.     else
  38.     { printf("Meteo for date %d/%d/%d\n",sd.day, sd.month,sd.year);
  39.     printf("Rain = %.2f mm\n",m.rain);
  40.     printf("Min Temp = %.2f mm.\n",m.min);
  41.     printf("Max Temp = %.2f mm.\n",m.max);
  42.     return 0;
  43.     }
  44. }
  45. void inputYearTable(data ME[] , int n)
  46. {
  47.     int i;
  48.     for(i=0;i<n;i++)
  49.     {
  50.         printf("Day#%d\n",i+1);
  51.         printf("Date : ");
  52.         scanf("%d %d %d",&ME[i].d,&ME[i].m,&ME[i].y);
  53.         printf("Rain : ");
  54.         scanf("%f",&ME[i].rain);
  55.         printf("Max Tem : ");
  56.         scanf("%f",&ME[i].max);
  57.         printf("Min Tem : ");
  58.         scanf("%f",&ME[i].min);
  59.     }  
  60.    
  61. }
  62.  
  63. void calAvgTemp(data ME[ ] , int n)
  64. {
  65.     int i;
  66.     float sum=0,avg=0;
  67.     printf("N = %d\n",n);
  68.     for(i=0;i<n;i++)
  69.     {
  70.         avg=(ME[i].max+ME[i].min)/2;
  71.    
  72.         printf("Data #%d Date %d/%d/%d AVG Tem = %.2f\n",i+1,ME[i].d,ME[i].m,ME[i].y,avg);
  73.     }
  74.  
  75.     printf("AVG = %.2f\n",avg);
  76. }
  77.  
  78. float findMinTemp(data ME[ ], int n )
  79. {
  80.     int i;
  81.     float min=ME[0].min;
  82.     for(i=0;i<n;i++)
  83.     {
  84.         if(ME[i].min<min)
  85.         {
  86.             min=ME[i].min;
  87.         }
  88.     }
  89.     return min;
  90. }
  91.  
  92. void accumRainMonthly(data ME[ ] , int n)
  93. {
  94.    
  95.    int month[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
  96.    int i,c = 0,j=0,sum = 0;
  97.    for(i=0;i<n;i++)
  98.    {
  99.       c++;
  100.       sum += ME[i].rain;
  101.       if(c == month[j])
  102.       {
  103.          j++;
  104.          printf("MONTH#%d ACCUMULATED RAIN = %.1f mm\n",j,sum);
  105.          sum = 0;   c = 0;
  106.       }
  107.    }
  108.    printf("C = %d\n",c);
  109.     //int i,rain=ME[0].rain;
  110. //  for(i=0;i<n;i++)
  111. //  {
  112. //      rain+=ME[i].rain;
  113. //      printf("Month#%d ACCUMULATED RAIN = %.2f mm.\n",ME[i].m,ME[i].rain);
  114. //  }
  115. }
  116.  
  117. data findDateMeteo(data ME[], int n,Date sd)
  118. {
  119.     data B;
  120.     int i;
  121.     for(i=0;i<n;i++)
  122.     {
  123.         if(ME[i].d==sd.day&&ME[i].m==sd.month&&ME[i].d==sd.year)
  124.         {
  125.             return ME[i];
  126.         }
  127.         else
  128.         {
  129.             B.d=0;
  130.             B.m=0;
  131.             B.y=0;
  132.         return B;  
  133.         }
  134.     }
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement