wojiaocbj

E4 F grading

Apr 5th, 2022
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.26 KB | None | 0 0
  1. /*
  2.  Author: Cao Beijian(37509)
  3.  Result: AC Submission_id: 4278539
  4.  Created at: Tue Apr 05 2022 21:26:25 GMT+0800 (China Standard Time)
  5.  Problem: 5479  Time: 5 Memory: 1756
  6. */
  7.  
  8. #include <stdio.h>
  9. #include <math.h>
  10. double max_f64(double *arr, int n){
  11.     int i;
  12.     double ans = arr[0];
  13.     for(i = 1; i < n; i++){
  14.         if(arr[i] > ans){
  15.             ans = arr[i];
  16.         }
  17.     }
  18.     return ans;
  19. }
  20. int main(){
  21.     int n, i, j, m;
  22.     scanf("%d", &n);
  23.     int id[64] = { 0 };
  24.     double gpajq[64] = { 0 }, rykjq[64] = { 0 }, credits[64] = { 0 };
  25.     double gpasum, honorsum, honorcnt;
  26.     double M1, M2, M3;
  27.     double grade, credit;
  28.     int honor;
  29.     for(i = 0; i < n; i++){
  30.         gpasum = 0; honorcnt = 0; honorsum = 0;
  31.         scanf("%d%d", id + i, &m);
  32.         for(j = 0; j < m; j++){
  33.             scanf("%lf%lf%d", &credit, &grade, &honor);
  34.             if(grade >= 60.){
  35.                 gpasum += (credit * (4. - 3. * pow(100 - grade, 2) / 1600.));
  36.             }
  37.             credits[i] += credit;
  38.             if(honor){
  39.                 honorsum += grade * credit;
  40.                 honorcnt += credit;
  41.             }
  42.         }
  43.         gpajq[i] = gpasum / credits[i];
  44.         rykjq[i] = honorsum / honorcnt;
  45.     }
  46.     M1 = max_f64(gpajq, n);
  47.     M2 = max_f64(rykjq, n);
  48.     M3 = max_f64(credits, n);
  49.     for(i = 0; i < n; i++){
  50.         printf("%d %.4f\n", id[i], gpajq[i] / M1 * 50. + rykjq[i] / M2 * 30. + credits[i] / M3 * 20.);
  51.     }
  52.     return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment