Advertisement
deced

Untitled

Sep 6th, 2021
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.25 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4.  
  5. const char* intTab = "%4d";
  6. const char* charTab = "%4c";
  7. const char deleteChar = '#';
  8. const int height = 2;
  9. const int width = 2;
  10.  
  11. int main() {
  12. char* locale = setlocale(LC_ALL, "");
  13.  
  14. int matrix[height][width];
  15. int newMatrix[height - 1][width - 1];
  16.  
  17. int countNegative = 0, maxCountNegative = 0, indexNegative = 0;
  18. int countPositive = 0, maxCountPositive = 0, indexPositive = 0;
  19. if (height < 2 || width > 2 || height > 100 || width > 100)
  20. printf("Некорректный размер матрицы\n");
  21. else
  22. {
  23. printf("Исходная матрица\n");
  24. for (int i = 0; i < height; i++) {
  25. printf("\n");
  26. for (int j = 0; j < width; j++) {
  27. matrix[i][j] = rand() % 18 - 9;
  28. printf(intTab, matrix[i][j]);
  29. }
  30. }
  31.  
  32. for (int i = 0; i < height; i++) {
  33. countNegative = 0;
  34. for (int j = 0; j < width; j++)
  35. if (matrix[i][j] < 0)
  36. countNegative++;
  37. if (maxCountNegative < countNegative) {
  38. indexNegative = i;
  39. maxCountNegative = countNegative;
  40. }
  41. }
  42. for (int i = 0; i < width; i++) {
  43. countPositive = 0;
  44. for (int j = 0; j < height; j++)
  45. if (matrix[j][i] > 0)
  46. countPositive++;
  47. if (maxCountPositive < countPositive) {
  48. indexPositive = i;
  49. maxCountPositive = countPositive;
  50. }
  51.  
  52. }
  53.  
  54.  
  55. if (maxCountNegative == 0 || maxCountPositive == 0)
  56. {
  57. printf("\r\nВ матрице отсутствуют отрицательные либо положительные элементы");
  58. }
  59. else
  60. {
  61. printf("\n\nСтрока и столбец для удаления:");
  62. for (int i = 0; i < height; i++) {
  63. printf("\n");
  64. for (int j = 0; j < width; j++)
  65. if (i == indexNegative || j == indexPositive)
  66. printf(charTab, deleteChar);
  67. else
  68. printf(intTab, matrix[i][j]);
  69. }
  70. for (int i = 0; i < height; i++) {
  71. for (int j = 0; j < width; j++) {
  72. if ((i < indexNegative) && (j < indexPositive))
  73. newMatrix[i][j] = matrix[i][j];
  74. else if ((i > indexNegative) && (j < indexPositive))
  75. newMatrix[i - 1][j] = matrix[i][j];
  76. else if ((i < indexNegative) && (j > indexPositive))
  77. newMatrix[i][j - 1] = matrix[i][j];
  78. else if ((i > indexNegative) && (j > indexPositive))
  79. newMatrix[i - 1][j - 1] = matrix[i][j];
  80. }
  81. }
  82. printf("\n\nМатрица после удаления");
  83. for (int i = 0; i < height - 1; i++) {
  84. printf("\n");
  85. for (int j = 0; j < width - 1; j++)
  86. printf(intTab, newMatrix[i][j]);
  87. }
  88. }
  89. }
  90. return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement