Advertisement
gasaichan

Lab4_Var15

Nov 12th, 2017
358
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.07 KB | None | 0 0
  1. #include <iostream>
  2. #include <clocale>
  3. #include <conio.h>
  4. #include <ctime>
  5.  
  6. #define N 5
  7. #define M 9
  8.  
  9. // Функция для инициализации массива случайными числами от 1 до 3
  10. void InitArray(int Array[N][M]) {
  11.     for (int i = 0; i < N; i++) {
  12.         for (int j = 0; j < M; j++) {
  13.             Array[i][j] = rand() % 4;
  14.         }
  15.     }
  16. }
  17.  
  18. // Функция для печати двумерного массива на экран.
  19. void PrintArray(int Array[N][M]) {
  20.     for (int i = 0; i < N; i++) {
  21.         for (int j = 0; j < M; j++) {
  22.             std::cout << Array[i][j] << "\t";
  23.         }
  24.         std::cout << std::endl;
  25.     }
  26. }
  27.  
  28. // Функция для поиска нулей в строке
  29. int FindZeros(int Array[], int n) {
  30.     int Counter = 0;
  31.     for (int i = 0; i < n; i++) {
  32.         if (Array[i] == 0) { Counter++; }
  33.     }
  34.     return Counter;
  35. }
  36.  
  37. // Функция для поиска индекса максимального элемента в массиве
  38. int FindMax(int Array[], int n) {
  39.     int Max = Array[0];
  40.     int Index = 0;
  41.     for (int i = 0; i < n; i++) {
  42.         if (Array[i] > Max) {
  43.             Max = Array[i];
  44.             Index = i;
  45.         }
  46.     }
  47.     return Index;
  48. }
  49.  
  50. // Везде подписано std::, потому что не используется пространство имен std
  51.  
  52. int main() {
  53.     setlocale(LC_ALL, "Russian");
  54.     srand(time(0));
  55.  
  56.     int Arr[N][M];
  57.  
  58.     char Choice[16];
  59.     strcpy_s(Choice, 16, "Yes");
  60.  
  61.     while (strcmp(Choice, "Yes") == 0) {
  62.         InitArray(Arr);
  63.  
  64.         std::cout << "Массив " << M << "x" << N << ":" << std::endl;
  65.         PrintArray(Arr);
  66.  
  67.         // Массив, содержащий количество нулей в каждой строке
  68.         int Zeros[N];
  69.  
  70.         for (int i = 0; i < N; i++) {
  71.             Zeros[i] = FindZeros(Arr[i], M);
  72.             std::cout << "В " << i + 1 << " строке " << Zeros[i] << " нулей." << std::endl;
  73.         }
  74.  
  75.         int Index = FindMax(Zeros, N);
  76.         std::cout << "Больше всего нулей в " << Index + 1 << " строке." << std::endl;
  77.         std::cout << "Еще раз? (Yes / No): ";
  78.         gets_s(Choice, 16);
  79.     }
  80.    
  81.     return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement