Advertisement
xTheEc0

2. Ilgų skaičių sudėtis (Vad 95. psl.)

Feb 3rd, 2015
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.92 KB | None | 0 0
  1. // Vadovelyje yra klaida. Istikro 40 skaiciu ne 37 3-čioj eilutėj.
  2.  
  3. /*
  4. 3
  5. 22 5126717910121751622546
  6. 29 88888888888888888888888888888
  7. 40 2525255125133485451578436833138834387837
  8. */
  9.  
  10. #include <iostream>
  11. #include <fstream>
  12. #include <iomanip>
  13.  
  14. using namespace std;
  15. const char duomF[] = "1.txt";
  16. const char rezF[] = "rez1.txt";
  17. const int CMax = 81;
  18.  
  19. void reset(int SK[])
  20. {
  21.     for (int i = 0; i < CMax; i++)
  22.     {
  23.         SK[i] = 0;
  24.     }
  25. }
  26.  
  27. void skaitymas(int SK[], int &n, int &maxPrint)
  28. {
  29.     ifstream df(duomF);
  30.     char temp;
  31.     int tempsk;
  32.     int p;
  33.  
  34.     df >> n;
  35.     for (int i = 0; i < n; i++)
  36.     {
  37.         df >> p;
  38.         if (p > maxPrint)
  39.         {
  40.             maxPrint = p;
  41.         }
  42.         for (int j = CMax - p; j < CMax; j++)
  43.         {
  44.             df >> temp;
  45.  
  46.             {    if (temp == '0') tempsk = 0; // Folding
  47.             else if (temp == '1') tempsk = 1;
  48.             else if (temp == '2') tempsk = 2;
  49.             else if (temp == '3') tempsk = 3;
  50.             else if (temp == '4') tempsk = 4;
  51.             else if (temp == '5') tempsk = 5;
  52.             else if (temp == '6') tempsk = 6;
  53.             else if (temp == '7') tempsk = 7;
  54.             else if (temp == '8') tempsk = 8;
  55.             else if (temp == '9') tempsk = 9;
  56.             }
  57.             SK[j] += tempsk;
  58.         }
  59.     }
  60.     df.close();
  61. }
  62.  
  63. void skaiciavimas(int SK[])
  64. {
  65.     int temp;
  66.     for (int i = CMax - 1; i >= 0; i--)
  67.     {
  68.         if(SK[i] >= 10)
  69.         {
  70.             temp = SK[i] / 10;
  71.             SK[i-1] += temp;
  72.             SK[i] = SK[i] % 10;
  73.         }
  74. }}
  75.  
  76. int main()
  77. {
  78.     int SK[CMax];
  79.     int n; int maxPrint = 0;
  80.  
  81.     reset(SK);
  82.     skaitymas(SK, n, maxPrint);
  83.     skaiciavimas(SK);
  84.  
  85.     for (int i = CMax - maxPrint; i < CMax; i++) cout << SK[i];
  86.  
  87.     ofstream rf(rezF);
  88.     for (int i = CMax - maxPrint; i < CMax; i++) rf << SK[i];
  89.     rf.close();
  90.  
  91.     return 0;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement