Advertisement
Argintos

ёбаный массив

Apr 8th, 2014
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.15 KB | None | 0 0
  1. //определить количество строк не содержащих ни одного нулевого элемента;
  2. //максимальное из чисел встречающихся более одного раза;
  3. #include <iostream>
  4. #include <conio.h>
  5.  
  6. using namespace std;
  7.  
  8. //функция для определения количества строк без нулевых элементов
  9. void find_zeros(int &x, int &y, int **array_1)
  10. {
  11.     //находим нули в строках
  12.     int counter_zeros = 0;
  13.     int counter_lines = 0;
  14.    
  15.     for (int i = 0; i < x; i++)
  16.     {
  17.         for (int j = 0; j < y; j++)
  18.         {
  19.             if (!array_1[i][j]) //если mass[i][j] == 0, мы выполняем условие
  20.             {
  21.                 counter_zeros++;
  22.             }
  23.         }
  24.         if (!counter_zeros) //если counter_zeros == 0, мы выполняем условие
  25.         {
  26.             counter_lines++;
  27.         }
  28.         counter_zeros = 0;
  29.     }
  30.    
  31.     cout << "Lines without zeros: " << counter_lines;
  32.     cout << endl;
  33.  
  34. }
  35.  
  36. //функция для определения максимального из чисел, встречающихся более одного раза
  37. void max_number(int &x, int &y, int **array_1)
  38. {
  39.     //переводим массив в одномерный
  40.     int *one_mass = new int[x*y];
  41.     int k = 0;
  42.         for (int i = 0; i < x; i++)
  43.     {
  44.         for (int j = 0; j < y; j++)
  45.         {
  46.             one_mass[k] = array_1[i][j];
  47.             k++;
  48.         }
  49.     }
  50.    
  51.     //сортируем одномерный массив
  52.     int buff = 0;
  53.     for (int i = 0; i < x*y; i++)
  54.     {
  55.         for (int j = i + 1; j < x*y; j++)
  56.         {
  57.             if (one_mass[i] > one_mass[j])
  58.             {
  59.                 swap(one_mass[i], one_mass[j]);
  60.             }
  61.         }
  62.     }
  63.     //находим максимальное число встреч. более одного раза
  64.     bool f = true;
  65.     int max_number = 0;
  66.     for (int i = x*y; i > 0; i--)
  67.     {
  68.         if (one_mass[i] == one_mass[i-1] && f == true)
  69.         {
  70.             max_number = one_mass[i];
  71.             f = false;
  72.         }
  73.     }
  74.     //переводим одномерный массив в двумерный
  75.     k = 0;
  76.     for (int i = 0; i < x; i++)
  77.     {
  78.         for (int j = 0; j < y; j++)
  79.         {
  80.             array_1[i][j] = one_mass[k];
  81.             k++;
  82.         }
  83.     }
  84.     //тащемта результаты, например
  85.     cout << endl;
  86.     cout << "Sorted array" << endl;
  87.     for (int i = 0; i < x; i++)
  88.     {
  89.         for (int j = 0; j < y; j++)
  90.         {
  91.             cout << array_1[i][j] << " ";
  92.         }
  93.         cout << endl;
  94.     }
  95.     cout << "Max number: " << max_number;
  96.  
  97. }
  98.  
  99. int main ()
  100. {
  101.     int n, m;
  102.  
  103.     cout << "Insert number of lines: ";
  104.     cin >> n;
  105.     cout << "Insert number of rows: ";
  106.     cin >> m;
  107.    
  108.     //создаём указатель на указатели
  109.     int **mass = new int* [n];
  110.     for (int i = 0; i < n; i++)
  111.     {
  112.         mass[i] = new int [m];
  113.     }
  114.    
  115.     //заполняем массив рендомными числами
  116.     for (int i = 0; i < n; i++)
  117.     {
  118.         for (int j = 0; j < m; j++)
  119.         {
  120.             mass[i][j] = rand()%10;
  121.         }
  122.     }
  123.     //выводим массив
  124.     cout << endl;
  125.     cout << "Unsorted array" << endl;
  126.     for (int i = 0; i < n; i++)
  127.     {
  128.         for (int j = 0; j < m; j++)
  129.         {
  130.             cout << mass[i][j] << " ";
  131.         }
  132.         cout << endl;
  133.     }
  134.  
  135.     find_zeros(n, m, mass);
  136.     max_number(n, m, mass);
  137.    
  138.     _getch();
  139.     return 0;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement