O_Egor

16(+)

Oct 6th, 2019
334
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.70 KB | None | 0 0
  1. //задача16
  2. #include <iostream>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     vector<char> v,v1;
  10.     char c;
  11.     while (cin >> c)
  12.     {
  13.         if (isalpha(c) || isdigit(c))
  14.             v1.push_back(c);
  15.         if (((c >= 42) && (c <= 47)) || (c == 94))
  16.         {
  17.             if (c == '*')
  18.                 c = '.';
  19.             if (c == '-')
  20.                 c = ',';
  21.             if (v.empty())
  22.                 v.push_back(c);
  23.             else
  24.             {
  25.                 //if ((v.back() >= c) || (v.back() == c - 1) || (v.back() == c + 1))
  26.                 //{
  27.                     while ((v.back() >= c) || (v.back() == c - 1) || (v.back() == c + 1))
  28.                     {
  29.                         v1.push_back(v.back());
  30.                         v.pop_back();
  31.                         if (v.empty())
  32.                             break;
  33.                     }
  34.                     v.push_back(c);
  35.                 //}
  36.                 //else
  37.                     //v.push_back(c);
  38.             }
  39.         }
  40.  
  41.         if (c == '(')
  42.             v.push_back(c);
  43.         if (c == ')')
  44.         {
  45.             while (v.back() != '(')
  46.             {
  47.                 v1.push_back(v.back());
  48.                 v.pop_back();
  49.             }
  50.             v.pop_back();
  51.         }
  52.  
  53.     }
  54.  
  55.     while (!v.empty())
  56.     {
  57.         v1.push_back(v.back());
  58.         v.pop_back();
  59.     }
  60.  
  61.     for (int i = 0; i < v1.size(); i++)
  62.     {
  63.         if (v1[i] == '.')
  64.             v1[i] = '*';
  65.         if (v1[i] == ',')
  66.             v1[i] = '-';
  67.         cout << v1[i];
  68.     }
  69.     return 0;
  70. }
  71. ///a+b - ab+
  72. ///a*b+c - ab*c+
  73. ///a*(b+c) - abc+*
  74. ///a+b^c^d*e - abc^d^e*+
  75. ///5-(a+b*c^2-1)+a - 5abc2^*+1--a+
Advertisement
Add Comment
Please, Sign In to add comment