Advertisement
xTheEc0

2. Ledai (Vad 118 psl.)

Jan 26th, 2015
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.40 KB | None | 0 0
  1. /*
  2. 6
  3. Baltieji vaisiniai    5 3.5
  4. Megeju                3 6.3
  5. Zalieji agurkiniai    25 1.15
  6. Aromatiniai           15 0.57
  7. Riesutiniai           22 3.48
  8. Megeju                2 6.2
  9. */
  10.  
  11. #include <iostream>
  12. #include <cmath>
  13. #include <iomanip>
  14. #include <fstream>
  15. using namespace std;
  16.  
  17. const char duomF[] = "1.txt";
  18. const char rezF[] = "rez1.txt";
  19. const int CPav = 20;
  20. const int CMax = 51;
  21.  
  22. struct ledai
  23. {
  24.     string pav;
  25.     int porcijos;
  26.     double kaina;
  27.     double suma;
  28. };
  29.  
  30. void reset(ledai A[])
  31. {
  32.     for (int i = 0; i < CMax; i++) // Reset
  33.     {
  34.         A[i].pav = " ";
  35.         A[i].porcijos = 0;
  36.         A[i].kaina = 0;
  37.         A[i].suma = 0;
  38.     }
  39. }
  40.  
  41. void skaitymas(ledai A[], int &n)
  42. {
  43.     ifstream df(duomF);
  44.     char eil[CPav+1];
  45.     df >> n;
  46.     for (int i = 0; i < n; i++)
  47.     {
  48.         df.ignore(80, '\n');
  49.         df.get(eil, CPav);
  50.         A[i].pav = eil;
  51.         df >> A[i].porcijos >> A[i].kaina;
  52.     }
  53.     df.close();
  54. }
  55.  
  56. void vienodi(ledai A[], int n)
  57. {
  58.     int temp;
  59.     for (int i = 0; i < n-1; i++) //Vienodu tikrinimas
  60.     {
  61.         for (int j = i+1; j < n; j++)
  62.         {
  63.             if (A[j].pav == A[i].pav)
  64.             {
  65.                 A[i].porcijos += A[j].porcijos;
  66.                 A[j].pav = " ";
  67.                 A[j].porcijos = 0;
  68.                 A[j].kaina = 0;
  69.                 A[j].suma = 0;
  70.             }
  71. }}}
  72.  
  73. void sprendimas(ledai A[], int n)
  74. {
  75.     for (int i = 0; i < n; i++)
  76.     {
  77.         if (A[i].porcijos != 0)
  78.         {
  79.             A[i].suma = A[i].porcijos * A[i].kaina;
  80.         }
  81. }}
  82.  
  83. void rykiavimas(ledai A[], int n)
  84. {
  85.     double temps;
  86.     string tempp;
  87.     for (int i = 0; i < n-1; i++)
  88.     {
  89.         for (int j = i+1; j < n; j++)
  90.         {
  91.             if (A[j].suma > A[i].suma)
  92.             {
  93.                 temps = A[j].suma;
  94.                 tempp = A[j].pav;
  95.  
  96.                 A[j].suma = A[i].suma;
  97.                 A[j].pav = A[i].pav;
  98.  
  99.                 A[i].suma = temps;
  100.                 A[i].pav = tempp;
  101.             }
  102. }}}
  103.  
  104. void spausdinimas(ledai A[], int n)
  105. {
  106.     for (int i = 0; i < n; i++)
  107.     {
  108.         if (A[i].suma != 0)
  109.         {
  110.             cout << A[i].pav << A[i].suma << endl;
  111.         }
  112. }}
  113.  
  114. int main()
  115. {
  116.     ledai A[CMax];
  117.     int n;
  118.  
  119.     reset(A);
  120.     skaitymas(A, n);
  121.     vienodi(A, n);
  122.     sprendimas(A, n);
  123.     rykiavimas(A, n);
  124.     spausdinimas(A, n);
  125.  
  126.     return 0;
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement