Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <conio.h>
  3.  
  4. float** AllocMatrix(int n, int m);
  5. void Transform(float** a, float* v, int n, int m);
  6. void FreeMatrix(float** a);
  7. void inputMatrix(float** a, int n, int m);
  8. void printMatrix(float** a, int n, int m);
  9. int findMin(float** a, int n, int m);
  10. void deleteRow(float** a, int n, int m, int imin);
  11.  
  12.  
  13. void main()
  14. {
  15. int n, m;
  16. float** a;
  17. int imin;
  18.  
  19. printf("Input number of columns and rows ");
  20. scanf("%d %d", &n, &m);
  21.  
  22. if (m < 0 || n < 0 || m != n)
  23. printf("incorrect dates");
  24. else
  25. {
  26. a = AllocMatrix(n, m);
  27. imin = findMin(a, n, m);
  28. printf("\nInput your matrix: ");
  29. inputMatrix(a, n, m);
  30. printMatrix(a, n, m);
  31. deleteRow(a, n, m, imin);
  32. printf("\n");
  33. printMatrix(a, n, m);
  34. FreeMatrix(a);
  35. }
  36.  
  37. getch();
  38. }
  39.  
  40. float** AllocMatrix(int n, int m)
  41. {
  42. float* v = new float[n * m];
  43. float** a = new float* [n];
  44. Transform(a, v, n, m);
  45.  
  46. return a;
  47. }
  48.  
  49. void Transform(float** a, float* v, int n, int m)
  50. {
  51. for (int i = 0; i < n; i++)
  52. {
  53. a[i] = v + i * m;
  54. }
  55. }
  56.  
  57. void inputMatrix(float** a, int n, int m)
  58. {
  59. for (int i = 0; i < n; i++)
  60. for (int j = 0; j < m; j++)
  61. scanf("%f", a[i] + j);
  62. }
  63.  
  64. void printMatrix(float** a, int n, int m)
  65. {
  66. for (int i = 0; i < n; i++)
  67. {
  68. for (int j = 0; j < m; j++)
  69. printf("%7.2f", *(a[i] + j));
  70. printf("\n");
  71. }
  72. }
  73.  
  74. void FreeMatrix(float** a)
  75. {
  76. delete[] * a;
  77. delete[]a;
  78. }
  79.  
  80. int findMin(float** a, int n, int m)
  81. {
  82. int imin;
  83. float min = a[0][0];
  84. for(int i=1; i<n; i++)
  85. for (int j = 0; j < i-1; j++)
  86. {
  87. if (a[i][j] < min)
  88. {
  89. min = a[i][j];
  90. imin = i;
  91. }
  92. }
  93. return imin;
  94. }
  95.  
  96. void deleteRow(float** a, int n, int m, int imin)
  97. {
  98. for (int i = imin; i < n - 1; i++)
  99. {
  100. for (int j = 0; j < m; j++)
  101. {
  102. a[i][j] = a[i + 1][j];
  103. }
  104. }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement