Advertisement
gasaichan

Lab4_Var1

Nov 12th, 2017
367
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.66 KB | None | 0 0
  1. #include <iostream>
  2. #include <clocale>
  3. #include <conio.h>
  4. #include <ctime>
  5.  
  6. // Функция для инициализации массива случайными числами от 1 до 10
  7. void InitArray(int Array[], int n) {
  8.     for (int i = 0; i < n; i++) {
  9.         Array[i] = rand() % 10;
  10.     }
  11. }
  12.  
  13. /* Функция для печати массива на экран. start - позиция, с которой начинаем печатать,
  14.    length - количество выводимых элементов, начиная с элемента start */
  15. void PrintArray(int Array[], int start, int length) {
  16.     for (int i = start; i <= length + start - 1; i++) {
  17.         std::cout << Array[i] << "\t";
  18.     }
  19.     std::cout << std::endl;
  20. }
  21.  
  22. // Функция для поиска максимального элемента в массиве
  23. int FindMax(int Array[], int n) {
  24.     int max = Array[0];
  25.     for (int i = 0; i < n; i++) {
  26.         if (Array[i] > max) {
  27.             max = Array[i];
  28.         }
  29.     }
  30.     return max;
  31. }
  32.  
  33. // Функция для замены нулей определенным элементов
  34. void SwapZeros(int Array[], int n, int e) {
  35.     for (int i = 0; i < n; i++) {
  36.         if (Array[i] == 0) {
  37.             Array[i] = e;
  38.         }
  39.     }
  40. }
  41.  
  42. // Везде подписано std::, потому что не используется пространство имен std
  43.  
  44. int main() {
  45.     setlocale(LC_ALL, "Russian");
  46.     srand(time(0));
  47.     const int n = 5, m = 6, k = 7, l = 5;
  48.     int X[n], Y[m], Z[k], Q[l];
  49.     char Choice[16];
  50.     strcpy_s(Choice, 16, "Yes");
  51.  
  52.     while (strcmp(Choice, "Yes") == 0) {
  53.         InitArray(X, n);
  54.         InitArray(Y, m);
  55.         InitArray(Z, k);
  56.         InitArray(Q, l);
  57.  
  58.         std::cout << "Массив X: " << std::endl;
  59.         PrintArray(X, 0, n);
  60.  
  61.         std::cout << "Массив Y: " << std::endl;
  62.         PrintArray(Y, 0, m);
  63.  
  64.         std::cout << "Массив Z: " << std::endl;
  65.         PrintArray(Z, 0, k);
  66.  
  67.         std::cout << "Массив Q: " << std::endl;
  68.         PrintArray(Q, 0, l);
  69.  
  70.         // Находим максимальные элементы в каждом массиве
  71.         int R[4];
  72.         R[0] = FindMax(X, n);
  73.         R[1] = FindMax(Y, m);
  74.         R[2] = FindMax(Z, k);
  75.         R[3] = FindMax(Q, l);
  76.  
  77.         std::cout << "Максимальный элемент в массиве X: " << R[0] << std::endl;
  78.         std::cout << "Максимальный элемент в массиве Y: " << R[1] << std::endl;
  79.         std::cout << "Максимальный элемент в массиве Z: " << R[2] << std::endl;
  80.         std::cout << "Максимальный элемент в массиве Q: " << R[3] << std::endl;
  81.  
  82.  
  83.         // Находим максимальный элемент среди максимальных
  84.         int Max = FindMax(R, 4);
  85.  
  86.         std::cout << "Максимальный элемент среди максимальных: " << Max << std::endl;
  87.  
  88.         if (R[0] == Max) {
  89.             SwapZeros(X, n, R[0]);
  90.             std::cout << "Массив X с максимальными элементами вместо нулей: " << std::endl;
  91.             PrintArray(X, 0, n);
  92.         }
  93.         else if (R[1] == Max) {
  94.             SwapZeros(Y, m, R[1]);
  95.             std::cout << "Массив Y с максимальными элементами вместо нулей: " << std::endl;
  96.  
  97.             PrintArray(Y, 0, m);
  98.         }
  99.         else if (R[2] == Max) {
  100.             SwapZeros(Z, k, R[2]);
  101.             std::cout << "Массив Z с максимальными элементами вместо нулей: " << std::endl;
  102.             PrintArray(Z, 0, k);
  103.         }
  104.         else {
  105.             SwapZeros(Q, l, R[3]);
  106.             std::cout << "Массив Q с максимальными элементами вместо нулей: " << std::endl;
  107.             PrintArray(Q, 0, l);
  108.         }
  109.         std::cout << "Еще раз? (Yes/No): ";
  110.         gets_s(Choice, 16);
  111.     }
  112.     return 0;
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement