Dimitrija

Laboratoriski ISPITNI - 5/6 SP ALT

Jan 5th, 2021 (edited)
623
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. #define MAX 100
  3.  
  4. /*
  5.  
  6. Дадена е текстуална датотека (livce.txt) која претставува ливче во спортска обложувалница.
  7.  
  8. На почетокот во датотеката, во посебен ред е запишана сумата на уплата (цел број).
  9.  
  10. Потоа во секој ред од датотеката е запишан по еден тип во следниот формат:
  11.  
  12. ab12 1 1.25
  13. Првиот број е шифрата на типот (низа од знаци која не е подолга од 9 знаци), вториот број е типот (може да биде 1, 0 или 2) додека третиот број е коефициентот (реален број).
  14.  
  15. Ваша задача е да се испечати типот со најголем коефициент како и можната добивка на ливчето. Доколку има повеќе типови со ист максимален коефициент, да се испечати првиот.
  16.  
  17. Можната добивка се пресметува како производ на сите коефициенти со сумата на уплата.
  18.  
  19. For example:
  20.  
  21. Input  
  22. 100
  23. ab12 1 1.2
  24. c234 2 2.0
  25. #
  26.  
  27. Result
  28. c234 2 2.00
  29. 240.00
  30.  
  31. */
  32.  
  33.  
  34. // ne menuvaj ovde
  35. void wf() {
  36.     FILE *f = fopen("livce.txt", "w");
  37.     char c;
  38.     while((c = getchar()) != '#') {
  39.         fputc(c, f);
  40.     }
  41.     fclose(f);
  42. }
  43.  
  44. int main() {
  45.     wf();
  46.     // vasiot kod pocnuva od ovde
  47.     FILE *dat;
  48.    
  49.     if ((dat = fopen("livce.txt", "r")) == NULL){
  50.         fprintf(stderr,"ERROR");
  51.         return -1;
  52.     }
  53.     int uplata;
  54.     int i;
  55.     double sumCoef=1;
  56.     char code[MAX][MAX];
  57.     int type[MAX]={0,};
  58.     double coeff[MAX]={0.0,};
  59.     int red=0;
  60.     float maxcoef;
  61.     int maxcoefred;
  62.    
  63.     fscanf(dat,"%d",&uplata);
  64.    
  65.     while (!feof(dat)){
  66.        
  67.         fscanf(dat,"%s %d %lf",&code[red][0],&type[red],&coeff[red]);
  68.        
  69.         if (coeff[red] > maxcoef){
  70.             maxcoef = coeff[red];
  71.             maxcoefred=red;
  72.         }
  73.        
  74.         red++;
  75.     }
  76.    
  77.     for (i=0;i<red-1;i++){
  78.      sumCoef*=coeff[i];
  79.     }
  80.    
  81.     printf("%s %d %.2lf\n",code[maxcoefred],type[maxcoefred],coeff[maxcoefred]);
  82.    
  83.     sumCoef = uplata * sumCoef;
  84.     printf("%.2lf",sumCoef);
  85.     fclose(dat);
  86.    
  87.    
  88.  
  89.     return 0;    
  90.  
  91. }
Add Comment
Please, Sign In to add comment