Advertisement
Guest User

Untitled

a guest
Feb 17th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.64 KB | None | 0 0
  1. //#define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <malloc.h>
  5.  
  6. int main()
  7. {
  8. int n, m, *matrixPtr,
  9. maxNaturalCounter = 0, maxMinusNaturalCounter = 0,
  10. tmpNaturalCounter = 0, tmpMinusNaturalCounter = 0,
  11. numberStrWithMaxNaturalCount = 0, numberStrWithMaxMinusNaturalCount = 0,
  12. tmpContainer;
  13. //Matrix MyMatrix; //Create a variable of "Matrix" type
  14. //system("chcp 1251");
  15. //system("cls");
  16. printf("Введите количество строк в матрице: ");
  17. scanf("%d", &m);
  18. printf("Введите количество столбцов в матрице: ");
  19. scanf("%d", &n);
  20. matrixPtr = malloc(sizeof(int) * m * n);
  21. for (int i = 0; i < m; i++)
  22. {
  23. for (int j = 0; j < n; j++)
  24. {
  25. printf("a[%d][%d] = ", i + 1, j+ 1);
  26. scanf("%d", (matrixPtr + i * n + j));
  27. if (*(matrixPtr + i * n + j) > 0)
  28. {
  29. tmpNaturalCounter++;
  30. }
  31. else if (*(matrixPtr + i * n + j) <= 0)
  32. {
  33. tmpMinusNaturalCounter++;
  34. }
  35. }
  36. if (tmpNaturalCounter > maxNaturalCounter)
  37. {
  38. maxNaturalCounter = tmpNaturalCounter;
  39. numberStrWithMaxNaturalCount = i + 1;
  40. }
  41. if (tmpMinusNaturalCounter > maxMinusNaturalCounter)
  42. {
  43. maxMinusNaturalCounter = tmpMinusNaturalCounter;
  44. numberStrWithMaxMinusNaturalCount = i + 1;
  45. }
  46. tmpNaturalCounter = 0;
  47. tmpMinusNaturalCounter = 0;
  48. }
  49. printf("\nСтрока с наибольшим числом строго положительных: %d\nСтрока с наибольшим числом отрицательных: %d", numberStrWithMaxNaturalCount, numberStrWithMaxMinusNaturalCount);
  50. printf("\nИсходная матрица:\n");
  51. for (int i = 0; i < m; i++)
  52. {
  53. for (int j = 0; j < n; j++)
  54. {
  55. printf("%5d", *(matrixPtr + i * n + j));
  56. }
  57. printf("\n");
  58. }
  59. if (numberStrWithMaxNaturalCount != 1)
  60. {
  61. for (int i = 0; i < n; i++)
  62. {
  63. tmpContainer = *(matrixPtr + i);
  64. *(matrixPtr + i) = *(matrixPtr + n * (numberStrWithMaxNaturalCount - 1) + i);
  65. *(matrixPtr + n * (numberStrWithMaxNaturalCount - 1) + i) = tmpContainer;
  66. }
  67. }
  68. if (numberStrWithMaxMinusNaturalCount != m)
  69. {
  70. for (int i = 0; i < n; i++)
  71. {
  72. tmpContainer = *(matrixPtr + (m - 1) * n + i);
  73. *(matrixPtr + (m - 1) * n + i) = *(matrixPtr + n * (numberStrWithMaxMinusNaturalCount - 1) + i);
  74. *(matrixPtr + n * (numberStrWithMaxMinusNaturalCount - 1) + i) = tmpContainer;
  75. }
  76. }
  77. printf("\nИзмененная матрица:\n");
  78. for (int i = 0; i < m; i++)
  79. {
  80. for (int j = 0; j < n; j++)
  81. {
  82. printf("%5d", *(matrixPtr + i * n + j));
  83. }
  84. printf("\n");
  85. }
  86. free(matrixPtr);
  87. scanf("&c");
  88. return 0;
  89. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement