Advertisement
cacodemon665

Лаба 6 Вариант 8

Jan 16th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     char data[255];
  9.  
  10.     cin >> data;
  11.  
  12.     for (int i = 0; i < strlen(data); i++)
  13.     {
  14.         if (data[i] == '.')
  15.         {
  16.             int pos = i - 1;
  17.             int lsize = 0, rsize = 0;
  18.  
  19.             while ((data[pos] - '0' < 10 && data[pos] - '0' >= 0 || data[pos] == '+' || data[pos] == '-') && pos >= 0)
  20.             {
  21.                 lsize++;
  22.  
  23.                 if (data[pos] == '-' || data[pos] == '+')
  24.                     break;
  25.  
  26.                 pos--;
  27.             }
  28.  
  29.             pos = i + 1;
  30.  
  31.             while (data[pos] - '0' < 10 && data[pos] - '0' >= 0 && pos < strlen(data))
  32.             {
  33.                 rsize++;
  34.                 pos++;
  35.             }
  36.  
  37.             if (lsize == 0 || rsize == 0 || (lsize == 1 && (data[i - 1] == '+' || data[i - 1] == '-')))
  38.                 continue;
  39.  
  40.             if (data[pos] == 'e')
  41.             {
  42.                 pos++;
  43.                 rsize++;
  44.             }
  45.             else
  46.                 continue;
  47.  
  48.             if (data[pos] == '+' || data[pos] == '-')
  49.             {
  50.                 pos++;
  51.                 rsize++;
  52.             }
  53.  
  54.             int temp = pos;
  55.  
  56.             while (data[pos] - '0' < 10 && data[pos] - '0' >= 0 && pos < strlen(data))
  57.             {
  58.                 pos++;
  59.                 rsize++;
  60.             }
  61.  
  62.             if (pos == temp)
  63.                 continue;
  64.  
  65.             for (pos = i - lsize; pos <= i + rsize; pos++)
  66.                 cout << data[pos];
  67.  
  68.             cout << endl;
  69.         }
  70.     }
  71.  
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement