Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.01 KB | None | 0 0
  1. #include <stdio.h> //стандарт
  2. #include <math.h> //sin cos
  3. #include <conio.h> //ввод вывод
  4. #include <cstdlib> //рандома
  5. #include <time.h> //обнуление рандома
  6.  
  7. #define rows 9 //строк в массиве. массивы A1, A2, B1, B содержат в себе rows элементов.
  8. #define cols 4 //колонок в массиве
  9.  
  10. int MatrixMinimum(float matrix[rows][cols])
  11. {
  12. float min = matrix[0][0];
  13. int imin = 0;
  14. for (int i = 0; i < rows; i++)
  15. {
  16. for (int j = 0; j < cols; j++)
  17. if (matrix[i][j] < min)
  18. {
  19. min = matrix[i][j];
  20. imin = i;
  21. }
  22. }
  23. imin;
  24. return imin;
  25. }
  26.  
  27. float InsertionSort(float matrix[rows])
  28. {
  29. float temp;
  30. int item;
  31. for (int i = 2; i < rows - 1; i += 2)
  32. {
  33. temp = matrix[i];
  34. item = i - 2;
  35. while (item >= 0 && matrix[item] > temp)
  36. {
  37. matrix[item + 2] = matrix[item];
  38. matrix[item] = temp;
  39. item = item - 2;
  40. }
  41. }
  42. return matrix[rows];
  43. }
  44.  
  45. int main(void) // void значит, что функция ничего не возвращает.
  46. {
  47. srand(time(NULL)); //удали или закоментируй эту строку для отключения рандома
  48.  
  49. //A INITIALIZE LOAD. Инициализация и заполнение массива А.
  50. float matrix_a[rows][cols];
  51. for (int i = 0; i < rows; i++)
  52. {
  53. //printf_s("Input line %i\n", i); //раскоментируй эту строку для включению ручного ввода//
  54. for (int j = 0; j < cols; j++)
  55. //scanf_s("%f", &matrix_a[i][j]); //раскоментируй эту строку для включению ручного ввода
  56. matrix_a[i][j] = rand() % 100 - 50; //удали или закоментируй эту строку для отключения рандома
  57. }
  58. //A INITIALIZE UNLOAD
  59.  
  60. //A OUTPUT LOAD. Вывод массива А
  61. printf_s("Matrix A:\n");
  62. for (int i = 0; i < rows; i++)
  63. {
  64. printf_s("|");
  65. for (int j = 0; j < cols; j++)
  66. printf_s("%.1f\t", matrix_a[i][j]);
  67. printf_s("|\n");
  68. }
  69. //A OUTPUT LOAD
  70.  
  71. //B INITIALIZE LOAD. Инициализация B
  72. float matrix_b[rows];
  73. for (int i = 0; i < rows; i++)
  74. {
  75. double tempbox = i;
  76. matrix_b[i] = sin(tempbox - cos(tempbox));
  77. }
  78. //B INITIALIZE UNLOAD
  79.  
  80. int im = MatrixMinimum(matrix_a);
  81.  
  82. //A1 INITIALIZE LOAD. Инициализация A1
  83. float matrix_a1[cols];
  84. for (int j = 0; j < cols; j++)
  85. matrix_a1[j] = matrix_a[im][j];
  86. //A1 INITIALIZE UNLOAD
  87.  
  88. //A2 INITIALIZE LOAD. Инициализация А2
  89. float matrix_a2[cols];
  90. for (int j = 0; j < rows; j++)
  91. matrix_a2[j] = matrix_a1[j];
  92. //A2 INITIALIZE UNLOAD
  93.  
  94. //CHEAT SORT LOAD. Быстрая сортировка А2
  95. if (matrix_a2[0] > matrix_a2[2])
  96. {
  97. float buf;
  98. buf = matrix_a2[2];
  99. matrix_a2[2] = matrix_a2[0];
  100. matrix_a2[0] = buf;
  101. }
  102. //CHEAT SORT UNLOAD
  103.  
  104. //B1 INITIALIZE LOAD. Инициализация B1
  105. float matrix_b1[rows];
  106. for (int j = 0; j < rows; j++)
  107. matrix_b1[j] = matrix_b[j];
  108. //B1 INITIALIZE UNLOAD
  109.  
  110. matrix_b1[rows] = InsertionSort(matrix_b1);
  111.  
  112. //B OUTPUT LOAD. Вывод B
  113. printf_s("\n");
  114. printf_s("Matrix B\n");
  115. printf_s("|");
  116. for (int i = 0; i < rows; i++)
  117. printf_s("%.1f\t", matrix_b[i]);
  118. printf_s("|\n");
  119. //B OUTPUT UNLOAD
  120.  
  121. //IM OUTPUT LOAD. Вывод IM
  122. printf_s("\n");
  123. printf_s("IM = %3i\n", im);
  124. //IM OUTPUT UNLOAD
  125.  
  126. //A1 OUTPUT LOAD. Вывод A1
  127. printf_s("\n");
  128. printf_s("Matrix a1\n");
  129. printf_s("|");
  130. for (int j = 0; j < cols; j++)
  131. printf_s("%.1f\t", matrix_a1[j]);
  132. printf_s("|\n");
  133. //A1 OUTPUT UNLOAD
  134.  
  135. //A2 OUTPUT LOAD. Вывод A2
  136. printf_s("\n");
  137. printf_s("Matrix a2\n");
  138. printf_s("|");
  139. for (int j = 0; j < cols; j++)
  140. printf_s("%.1f\t", matrix_a2[j]);
  141. printf_s("|\n");
  142. //A2 OUTPUT UNLOAD
  143.  
  144. //B1 OUTPUT LOAD. Вывод B1
  145. printf_s("\n");
  146. printf_s("Matrix B1 EDITED\n");
  147. printf_s("|");
  148. for (int i = 0; i < rows; i++)
  149. printf_s("%.1f\t", matrix_b1[i]);
  150. printf_s("|\n");
  151. //B1 OUTPUT UNLOAD
  152.  
  153. _getch();
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement