Advertisement
hamaXD

Final 57 ตอนที่ 3

Dec 7th, 2016
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.31 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3. #define enter "\n"
  4. //-----1
  5. typedef struct{
  6.     int d,m,y; //day, month, year
  7. }Date;
  8.  
  9. typedef struct{
  10.     Date date;
  11.     float rain,minTemp,maxTemp,avgTemp;
  12. }MeteoRecord;
  13.  
  14. void inputYearTable(MeteoRecord M[] , int n){
  15.  
  16.     int i;
  17.    
  18.     for(i=0;i<n;i++){
  19.     printf("Day#%d\n",i+1);
  20.     printf("DATE: ");
  21.     scanf("%d %d %d",&M[i].date.d,&M[i].date.m,&M[i].date.y); fflush(stdin);
  22.     printf("RAIN: ");
  23.     scanf("%f",&M[i].rain);
  24.     printf("MIN TEMP: ");
  25.     scanf("%f",&M[i].minTemp);
  26.     printf("MAX TEMP: ");
  27.     scanf("%f",&M[i].maxTemp);
  28.     }
  29.    
  30. }
  31.  
  32. void calAvgTemp(MeteoRecord M[ ] , int n) {
  33.     //DAY#1 DATE 01/01/2013 AVG TEMP = 26.85
  34.     int i=0;
  35.     while(i<n){
  36.         printf("\nDAY#%d DATE %d/%d/%d AVG TEMP = %.2f",i+1,M[i].date.d,M[i].date.m,M[i].date.y,(M[i].minTemp+M[i].maxTemp)/2);
  37.         i++;   
  38.     }
  39. }
  40.  
  41. float findMinTemp(MeteoRecord M[], int n ){
  42.         int i;
  43.         float tmp=M[0].minTemp;
  44.         for(i=0;i<n;i++){
  45.             if(M[i].minTemp < tmp){
  46.                 tmp = M[i].minTemp;
  47.             }
  48.         }
  49.         return tmp;
  50. }
  51.  
  52. void accumRainMonthly(MeteoRecord M[ ] , int n) {
  53.     int i,j;
  54.     float rm[12];
  55.     for(i=0;i<n;i++){
  56.         for(j=0;j<n;j++){
  57.             if(M[j].date.m == i+1){
  58.             rm[i]=rm[i]+M[j].rain;
  59.             }
  60.         }
  61.     }
  62.     printf(enter);
  63.     for(i=0;i<n-1;i++){
  64.         printf("\nMONTH#%d ACCUMULATED RAIN = %.f mm ",i+1,rm[i]); 
  65.     }  
  66. }
  67.  
  68. MeteoRecord findDateMeteo(MeteoRecord M[] , int n, Date sd){
  69.     int i;
  70.     if (sd.d == 0){
  71.         printf("Not found meteo record for date %d/%d/%d\n",sd.d,sd.m,sd.y);
  72.     }
  73.     else {
  74.         for(i=0;i<n;i++){
  75.             if(sd.d==M[i].date.d&&sd.m==M[i].date.m&&sd.y==M[i].date.y){
  76.                 printf("meteo for date %d/%d/%d\n",M[i].date.d,M[i].date.m,M[i].date.y);
  77.                 printf("RAIN: %.2f\n",M[i].rain);
  78.                 printf("MIN TEMP: %.2f\n",M[i].minTemp);
  79.                 printf("MAX TEMP: %.2f\n",M[i].maxTemp);       
  80.             }
  81.             else if(sd.d!=M[i].date.d&&sd.m!=M[i].date.m&&sd.y!=M[i].date.y){
  82.                 printf("Not found meteo record for date %d/%d/%d\n",sd.d,sd.m,sd.y);
  83.                 break;
  84.             }
  85.         }
  86.        
  87.     }
  88. }
  89.  
  90. int main(){
  91.     int n=3;
  92.     float mintemp=0;
  93.     Date sd;
  94.     MeteoRecord m;
  95.     MeteoRecord M[n];
  96.    
  97.     inputYearTable(M,n);
  98.     calAvgTemp(M,n);
  99.     mintemp=findMinTemp(M,n);
  100.     accumRainMonthly(M,n);
  101.     printf("\n\nmintemp = %.2f",mintemp);
  102.     printf("\n\nEnter Day/Month/Year with find : ");
  103.     scanf("%d %d %d",&sd.d,&sd.m,&sd.y);
  104.     fflush(stdin);
  105.     m = findDateMeteo(M,n,sd);
  106.    
  107.     return 0;
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement