Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.09 KB | None | 0 0
  1. Программа:
  2. #include<iostream>
  3. #include<conio.h>
  4. using namespace std; //подключение стандартного пространства имен
  5. void GetNewMemory(int**&arr, int length, int width)
  6. {
  7. arr = new int*[length]; //выделяем память под каждую строку
  8. for (int i(0); i < length; i++)
  9. {
  10. arr[i] = new int[width]; //для каждой строки выделяем память под столбцы
  11. }
  12. }
  13. void DeleteMemory(int**arr, int length)
  14. {
  15. for (int i(0); i < length; i++)
  16. {
  17. delete[]arr[i]; //удаление памяти
  18. }
  19. delete[]arr; //удаление памяти
  20. }
  21. void InputArray(int**arr, int length, int width)
  22. {
  23. for (int i(0);i<length;i++)
  24. {
  25. for (int j(0); j < width; j++)
  26. {
  27. cout « "Input Array[" « i « "][" « j « "]= ";
  28. cin » arr[i][j];
  29. }
  30. }
  31.  
  32. }
  33. void otput(int**arr, int length, int width) //функция вывода массива
  34. {
  35. for (int i(0); i < length; i++)
  36. {
  37. for (int j(0); j < width; j++)
  38. {
  39.  
  40. cout « arr[i][j] « '\t';
  41. } cout « endl;
  42. }
  43. }
  44. bool isgrowig(int**arr, int length, int width) //считаем матрицу на возрастание нулей
  45. {
  46. int k = 0; //проверяемый столбец
  47. int r; //предыдущий столбец
  48. for (int j(0); j < width; j++)
  49. {
  50. for (int i(0); i < length; i++)
  51. {
  52. if (arr[i][j] == 0) //считаем количество элементов равных нулю
  53. k++;
  54.  
  55.  
  56.  
  57. }
  58. if (j == 0) //условие, если мы находимся на 1 столбце, то r=k
  59. r = k;
  60. else
  61. {
  62. if (k < r)
  63. {
  64. return false;
  65. }
  66. else
  67. {
  68. r = k;
  69. }
  70.  
  71. }
  72. k = 0;
  73. }
  74. return true;
  75. }
  76. int main(int argc, char**argv)
  77. {
  78. int **Array=NULL;
  79. int length, width; //объявление количества столбцов и строк
  80. cout « "Input length and width of array: "; //выводим длину и ширину массива
  81. cin » length » width; //ввод с клавиатуры строк и столбцов
  82. system("cls"); //отчищает экран
  83. GetNewMemory(Array, length, width); //освобождение памяти
  84. InputArray(Array, length, width); //функция ввода массива
  85. system("cls");
  86. otput(Array, length, width); //функция вывода массива
  87. if(isgrowig(Array, length, width)==true)
  88. {
  89. int k = 0;
  90. for (int j(0); j < width; j++)
  91. {
  92. for (int i(0); i < length; i++)
  93. {
  94. if (Array[i][j] == 0)
  95. k++;
  96. }
  97. }
  98. cout « "Number of null-ellements is: " « k; //вывод числа нулевых элементов
  99. }else
  100. {
  101. int column;
  102. int k = 0;
  103. int r;
  104. for (int j(0); j < width; j++)
  105. {
  106. for (int i(0); i < length; i++)
  107. {
  108. if (Array[i][j] == 0) //считаем сколько нулей в текущем столбце
  109. k++;
  110. }
  111. if (j == 0)
  112. {
  113. column = 0;
  114. r = k;
  115. }
  116.  
  117. else
  118. {
  119. if (k < r)
  120. {
  121. column = j -1;
  122. }
  123. else
  124. {
  125. r = k;
  126. }
  127.  
  128. }
  129. k = 0;
  130. }
  131. cout « column;
  132. }
  133. DeleteMemory(Array, length);
  134. _getch(); //задерживает консоль
  135. return 0;
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement