arsovski

shift_random_array

Aug 28th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.79 KB | None | 0 0
  1. За всеки елемент на случайно инициализиран с числа от интервала [-5; 5] масив от 10 елемента
  2. да се изведе сумата на елемента с двата следващи го (при недостиг на елементи в края на
  3. масива да се вземат елементи от началото – например 10-ия елемент трябва да се събере с 1ия
  4. и 2ия). Първо да се изведе масива. Всеки елемент от изхода да е отделен от другия с празно
  5. място.
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16. #include<iostream>
  17. #include<random>
  18. #include <ctime>
  19. #include "print_int_array.h"
  20.  
  21. int main()
  22. {
  23.     srand(time(NULL));
  24.  
  25.     int size;
  26.     std::cout << "Enter size ! ";
  27.     std::cin >> size;
  28.  
  29.     int* random_arr = new int[size];
  30.  
  31.     for(int i=0;i<size;i++)
  32.     {
  33.         int random_number = (rand() % 11) - 5;
  34.  
  35.         random_arr[i] = random_number;
  36.     }
  37.  
  38.     print_int_array(random_arr, size);
  39.  
  40.     int* coppied_random_arr = new int[size];
  41.     for(int i=0;i<size;i++)
  42.     {
  43.         coppied_random_arr[i] = random_arr[i];
  44.     }
  45.     int counter = 1;
  46.     for(int i=0;i<size;i++)
  47.     {
  48.         int sum = 0;
  49.  
  50.         if(i == size-2)
  51.         {
  52.             sum = coppied_random_arr[counter];
  53.             counter = 0;
  54.             sum += coppied_random_arr[counter];
  55.             random_arr[i] = sum;
  56.         }
  57.         else
  58.         {
  59.             sum = coppied_random_arr[counter];
  60.             sum += coppied_random_arr[counter + 1];
  61.             random_arr[i] = sum;
  62.         }
  63.  
  64.         counter++;
  65.     }
  66.  
  67.  
  68.     print_int_array(random_arr, size);
  69.  
  70.     return 0;
  71. }
  72.  
  73.  
  74.  
  75.  
  76.  
  77. ///Better solution below
  78.  
  79. #include <iostream>
  80. #include <cstdlib>
  81. #include <iomanip>
  82. #include <ctime>
  83. #include <cmath>
  84.  
  85. /*
  86. Група 3: За всеки елемент на случайно инициализиран с числа от интервала [-5; 5] масив от 10 елемента
  87. да се изведе сумата на елемента с двата следващи го.
  88. Първо да се изведе масива. Всеки елемент от изхода да е отделен от другия с празно място.
  89. */
  90.  
  91. using namespace std;
  92.  
  93. const int ARRAY_LENGTH = 10;
  94. const int BLUR_RADIUS = 5;
  95. const int RANGE_SIZE = 2 * BLUR_RADIUS + 1;
  96.  
  97. int main()
  98. {
  99.     srand(time(NULL));
  100.     int a [ARRAY_LENGTH];
  101.     for (int i = 0; i < ARRAY_LENGTH; i++) {
  102.         a[i] = rand() % RANGE_SIZE - BLUR_RADIUS;
  103.     }
  104.  
  105.     for (int i = 0; i < ARRAY_LENGTH; i++) {
  106.         cout << a[i] << ' ';
  107.     }
  108.     cout << endl;
  109.  
  110.     for (int i = 0; i < ARRAY_LENGTH; i++) {
  111.         int nextIndex = (i + 1) % ARRAY_LENGTH;
  112.         int postNextIndex = (i + 2) % ARRAY_LENGTH;
  113.         int sum = a[i] + a[nextIndex] + a[postNextIndex];
  114.         cout << sum << ' ';
  115.     }
  116.     cout << endl;
  117. }
Advertisement
Add Comment
Please, Sign In to add comment