Advertisement
deced

Untitled

Sep 5th, 2021
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6.  
  7. int InputN() {
  8. int n = -1;
  9. while ((n < 2) | (n > 15)) {
  10. printf("Введите размер[2..15] матрицы n*n: ");
  11. scanf("%d", &n);
  12. if ((n < 2) || (n > 15)) {
  13. printf("Ошибка!\n");
  14. }
  15. }
  16. return n;
  17. }
  18.  
  19. int InputElement(int i, int j) {
  20. int n = -100;
  21. while ((n < -99) || (n > 99)) {
  22. printf("[%d][%d] = ", i, j);
  23. scanf("%d", &n);
  24. }
  25. return n;
  26. }
  27.  
  28. int *InputMatrix(int n) {
  29. int *arr = NULL;
  30. arr = (int *) malloc(sizeof(int) * n * n);
  31. for (int i = 0; i < n; i++) {
  32. printf("\n");
  33. for (int j = 0; j < n; j++) {
  34. arr[i * n + j] = InputElement(i, j);
  35. }
  36. }
  37. return arr;
  38. }
  39.  
  40. void PrintMatrix(int *arr, int n) {
  41. for (int i = 0; i < n; i++) {
  42. printf("\n");
  43. for (int j = 0; j < n; j++) {
  44. printf("%3d", *(arr + i * n + j));
  45. }
  46. }
  47. }
  48.  
  49. void PrintZeros(int *arr, int n) {
  50.  
  51. int flag = 0;
  52.  
  53. for (int i = 0; i < n; i++) {
  54. for (int j = 0; j < n; j++) {
  55. if (*(arr + i * n + j) == 0) {
  56. if (flag == 0) {
  57. flag = 1;
  58. printf("\nИдексы нулевых элементов: ");
  59. }
  60. printf("[%d][%d] ", i, j);
  61. }
  62. }
  63. }
  64. if (flag == 0)
  65. printf("\nВ матрице нет нулевых элементов");
  66. }
  67.  
  68. void CheckMatrix(int *arr, int n) {
  69. int count = 0;
  70. int indexI, indexJ;
  71.  
  72. for (int i = 0; ((i < n) && (count < 1)); i++) {
  73. for (int j = 0; ((i < n) && (count < 1)); j++) {
  74. if (*(arr + i * n + j) != 0) {
  75. count++;
  76. indexI = i;
  77. indexJ = j;
  78. }
  79. }
  80. }
  81.  
  82. if (count > 0) {
  83. printf("\nВ матрице есть ненулевые элементы.");
  84. printf(" Наример: [%d][%d] ", indexI, indexJ);
  85. } else
  86. printf("В матрице нет ненулевых элементов.");
  87.  
  88. PrintZeros(arr, n);
  89. }
  90.  
  91.  
  92. int main() {
  93. int n;
  94. int *arr;
  95. n = InputN();
  96. arr = InputMatrix(n);
  97. printf("\nИсходная матрица: ");
  98. PrintMatrix(arr, n);
  99. printf("\n");
  100. CheckMatrix(arr, n);
  101. return 0;
  102. }
  103.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement