Advertisement
gasaichan

Lab5_Var16

Nov 12th, 2017
371
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <clocale>
  3. #include <ctime>
  4.  
  5. // Функция для инициализации массива случайными числами от -50 до 99
  6. void InitArray(int *Array, int n) {
  7.     for (int i = 0; i < n; i++) {
  8.         Array[i] = rand() % 100 - 50;
  9.     }
  10. }
  11.  
  12. // Функция для печати length элементов на экран, начиная с элемента start
  13. void PrintArray(int *Array, int start, int length) {
  14.     for (int i = start; i < start + length - 1; i++) {
  15.         std::cout << Array[i] << "\t";
  16.     }
  17.     std::cout << std::endl;
  18. }
  19.  
  20. // Функция для поиска максимального элемента и его индекса
  21. int FindMax(int *Array, int n, int * &Max) {
  22.     int Index = 0;
  23.     for (int i = 0; i < n; i++) {
  24.         if (Array[i] > *Max) {
  25.             Max = &Array[i];
  26.             Index = i;
  27.         }
  28.     }
  29.     return Index;
  30. }
  31.  
  32. int main() {
  33.     setlocale(LC_ALL, "Russian");
  34.     srand(time(0));
  35.  
  36.     char *Choice = new char[16];
  37.     strcpy_s(Choice, 16, "Yes");
  38.  
  39.     int n;
  40.     int *Max = nullptr;
  41.  
  42.     while (strcmp(Choice, "Yes") == 0) {
  43.         std::cout << "Введите размер массива: ";
  44.         std::cin >> n;
  45.         int *Array = new int[n];
  46.         InitArray(Array, n);
  47.         std::cout << "Сгенерированный массив: " << std::endl;
  48.         PrintArray(Array, 0, n);
  49.         Max = Array;
  50.         int Index = FindMax(Array, n, Max);
  51.         std::cout << "Максимальный элемент массива равен " << *Max << " и находится на " << Index + 1 << " месте." << std::endl;
  52.         std::cout << "Положительные элементы слева от максимума: ";
  53.         for (int i = 0; i < Index; i++) {
  54.             if (Array[i] > 0) {
  55.                 std::cout << Array[i] << "\t";
  56.             }
  57.         }
  58.         std::cout << std::endl;
  59.  
  60.         delete[] Array;
  61.         std::cout << "Еще раз? (Yes / No): ";
  62.         getchar();
  63.         gets_s(Choice, 16);
  64.     }
  65.     delete[] Choice;
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement