Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h> //стандарт
- #include <math.h> //sin cos
- #include <conio.h> //ввод вывод
- #include <cstdlib> //рандома
- #include <time.h> //обнуление рандома
- #define rows 9 //строк в массиве. массивы A1, A2, B1, B содержат в себе rows элементов.
- #define cols 4 //колонок в массиве
- int MatrixMinimum(float matrix[rows][cols])
- {
- float min = matrix[0][0];
- int imin = 0;
- for (int i = 0; i < rows; i++)
- {
- for (int j = 0; j < cols; j++)
- if (matrix[i][j] < min)
- {
- min = matrix[i][j];
- imin = i;
- }
- }
- imin;
- return imin;
- }
- float InsertionSort(float matrix[rows])
- {
- float temp;
- int item;
- for (int i = 2; i < rows - 1; i += 2)
- {
- temp = matrix[i];
- item = i - 2;
- while (item >= 0 && matrix[item] > temp)
- {
- matrix[item + 2] = matrix[item];
- matrix[item] = temp;
- item = item - 2;
- }
- }
- return matrix[rows];
- }
- int main(void) // void значит, что функция ничего не возвращает.
- {
- srand(time(NULL)); //удали или закоментируй эту строку для отключения рандома
- //A INITIALIZE LOAD. Инициализация и заполнение массива А.
- float matrix_a[rows][cols];
- for (int i = 0; i < rows; i++)
- {
- //printf_s("Input line %i\n", i); //раскоментируй эту строку для включению ручного ввода//
- for (int j = 0; j < cols; j++)
- //scanf_s("%f", &matrix_a[i][j]); //раскоментируй эту строку для включению ручного ввода
- matrix_a[i][j] = rand() % 100 - 50; //удали или закоментируй эту строку для отключения рандома
- }
- //A INITIALIZE UNLOAD
- //A OUTPUT LOAD. Вывод массива А
- printf_s("Matrix A:\n");
- for (int i = 0; i < rows; i++)
- {
- printf_s("|");
- for (int j = 0; j < cols; j++)
- printf_s("%.1f\t", matrix_a[i][j]);
- printf_s("|\n");
- }
- //A OUTPUT LOAD
- //B INITIALIZE LOAD. Инициализация B
- float matrix_b[rows];
- for (int i = 0; i < rows; i++)
- {
- double tempbox = i;
- matrix_b[i] = sin(tempbox - cos(tempbox));
- }
- //B INITIALIZE UNLOAD
- int im = MatrixMinimum(matrix_a);
- //A1 INITIALIZE LOAD. Инициализация A1
- float matrix_a1[cols];
- for (int j = 0; j < cols; j++)
- matrix_a1[j] = matrix_a[im][j];
- //A1 INITIALIZE UNLOAD
- //A2 INITIALIZE LOAD. Инициализация А2
- float matrix_a2[cols];
- for (int j = 0; j < rows; j++)
- matrix_a2[j] = matrix_a1[j];
- //A2 INITIALIZE UNLOAD
- //CHEAT SORT LOAD. Быстрая сортировка А2
- if (matrix_a2[0] > matrix_a2[2])
- {
- float buf;
- buf = matrix_a2[2];
- matrix_a2[2] = matrix_a2[0];
- matrix_a2[0] = buf;
- }
- //CHEAT SORT UNLOAD
- //B1 INITIALIZE LOAD. Инициализация B1
- float matrix_b1[rows];
- for (int j = 0; j < rows; j++)
- matrix_b1[j] = matrix_b[j];
- //B1 INITIALIZE UNLOAD
- matrix_b1[rows] = InsertionSort(matrix_b1);
- //B OUTPUT LOAD. Вывод B
- printf_s("\n");
- printf_s("Matrix B\n");
- printf_s("|");
- for (int i = 0; i < rows; i++)
- printf_s("%.1f\t", matrix_b[i]);
- printf_s("|\n");
- //B OUTPUT UNLOAD
- //IM OUTPUT LOAD. Вывод IM
- printf_s("\n");
- printf_s("IM = %3i\n", im);
- //IM OUTPUT UNLOAD
- //A1 OUTPUT LOAD. Вывод A1
- printf_s("\n");
- printf_s("Matrix a1\n");
- printf_s("|");
- for (int j = 0; j < cols; j++)
- printf_s("%.1f\t", matrix_a1[j]);
- printf_s("|\n");
- //A1 OUTPUT UNLOAD
- //A2 OUTPUT LOAD. Вывод A2
- printf_s("\n");
- printf_s("Matrix a2\n");
- printf_s("|");
- for (int j = 0; j < cols; j++)
- printf_s("%.1f\t", matrix_a2[j]);
- printf_s("|\n");
- //A2 OUTPUT UNLOAD
- //B1 OUTPUT LOAD. Вывод B1
- printf_s("\n");
- printf_s("Matrix B1 EDITED\n");
- printf_s("|");
- for (int i = 0; i < rows; i++)
- printf_s("%.1f\t", matrix_b1[i]);
- printf_s("|\n");
- //B1 OUTPUT UNLOAD
- _getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement