Advertisement
gguuppyy

лаба1н4

Sep 18th, 2023 (edited)
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.83 KB | Source Code | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     int n;
  8.     bool isInCorrect;
  9.    
  10.     cout << "Данная программа предназначена для формирования сглаженного массива." << endl;
  11.    
  12.     do
  13.     {
  14.         isInCorrect = false;
  15.         cout << "Введите количество элементов массива: ";
  16.         cin >> n;
  17.         if (cin.get() != '\n')
  18.         {
  19.             cin.clear();
  20.             while (cin.get() != '\n');
  21.             isInCorrect = true;
  22.             cout << "Введите верные данные!" << endl;
  23.         }
  24.         if (!isInCorrect && n < 1)
  25.         {
  26.             isInCorrect = true;
  27.             cout << "Введите верные данные!" << endl;
  28.         }
  29.     }
  30.     while (isInCorrect);
  31.    
  32.     double *arr = new double[n];
  33.     for (int i = 0; i < n; i++)
  34.     {
  35.         do
  36.         {
  37.             isInCorrect = false;
  38.             cout << "Введите " << i + 1 << " элемент:";
  39.             cin >> arr[i];
  40.             if (cin.get() != '\n')
  41.             {
  42.                 cin.clear();
  43.                 while (cin.get() != '\n');
  44.                 isInCorrect = true;
  45.                 cout << "Введите верные данные!" << endl;
  46.             }
  47.         }
  48.         while (isInCorrect);
  49.     }
  50.  
  51.     double *newarr = new double[n];
  52.     newarr[0] = arr[0];
  53.     newarr[n - 1] = arr[n - 1];
  54.    
  55.     for (int i = 1; i < n - 1; ++i)
  56.     {
  57.         newarr[i] = (arr[i - 1] + arr[i] + arr[i + 1]) / 3.0;
  58.     }
  59.    
  60.     cout << "Сглаженный массив:" << endl;
  61.     for (int i = 0; i < n; ++i)
  62.     {
  63.         cout << fixed << setprecision(2) << newarr[i] << endl;
  64.     }
  65.    
  66.     delete[] arr;
  67.     delete[] newarr;
  68.    
  69.     return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement