Advertisement
add1ctus

WorkingHours

Apr 12th, 2015
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.56 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define WEEKS 4
  4. #define DAYS 5
  5.  
  6. struct WorkingWeek
  7. {
  8.     int hours[DAYS];
  9. };
  10.  
  11. typedef struct WorkingWeek WW;
  12.  
  13. struct Worker
  14. {
  15.     char name[50];
  16.     WW weeks[WEEKS];
  17. };
  18.  
  19. typedef struct Worker W;
  20. typedef struct Worker Worker;
  21.  
  22. int maxWeek(Worker *w)
  23. {
  24.     int i,j;
  25.     int weekNum;
  26.     int maxHours=0;
  27.     for(i=0;i<WEEKS;i++)
  28.     {
  29.         int sum=0;
  30.         for(j=0;j<DAYS;j++)
  31.             sum+=w->weeks[i].hours[j];
  32.         if(sum>maxHours)
  33.         {
  34.             maxHours=sum;
  35.             weekNum=i+1;
  36.         }
  37.     }
  38.     return weekNum;
  39. }
  40.  
  41. void table(Worker *w, int n)
  42. {
  43.     int i,j,k;
  44.     printf("Wor\t1\t2\t3\t4\tTotal\n");
  45.     for(i=0;i<n;i++)
  46.     {
  47.         int totalsum=0;
  48.         printf("%s\t",w[i].name);
  49.         for(j=0;j<WEEKS;j++)
  50.         {
  51.             int sum=0;
  52.             for(k=0;k<DAYS;k++)
  53.                 sum+=w[i].weeks[j].hours[k];
  54.             printf("%d\t",sum);
  55.             totalsum+=sum;
  56.         }
  57.         printf("%d\n",totalsum);
  58.     }
  59. }
  60.  
  61. int main() {
  62.     int n;
  63.     scanf("%d", &n);
  64.     W workers[n];
  65.     int i;
  66.     for (i = 0; i < n; ++i) {
  67.         scanf("%s", workers[i].name);
  68.         int j;
  69.         for (j = 0; j < WEEKS; ++j) {
  70.             int k;
  71.             for (k = 0; k < DAYS; ++k) {
  72.                 scanf("%d", &workers[i].weeks[j].hours[k]);
  73.             }
  74.  
  75.         }
  76.     }
  77.     printf("TABLE\n");
  78.     table(workers, n);
  79.     printf("MAX WEEK OF WORKER: %s\n", workers[n / 2].name);
  80.     printf("%d\n", maxWeek(&workers[n / 2]));
  81.     return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement