Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- #include <cmath>
- #include <vector>
- using namespace std;
- int main()
- {
- srand(time(0)); // Генерация сида для рандомных чисел
- /*Задача 1. Сжать массив, удалив из него все элементы, модуль которых не превышает 1.
- Освободившиеся в конце массива элементы заполнить нулями.*/
- int *amountofelents;
- while (true)
- {
- cout << "Введите количество элементов: ";
- cin >> *amountofelents;
- if (*amountofelents)
- break;
- }
- double array[*amountofelents];
- vector<float> filter; // Вектор (тип коллекции) (можно удалять и добавлять данные динамически) создан для чисел по фильтру
- vector<int> indexes; // Индексы отфильтрованных элементов в массиве
- for (int i = 0; i < *amountofelents; i++)
- {
- double temprand = (rand() % 7 - 3);
- temprand /= 2; //? Делим на 2, чтобы получились рациональные
- array[i] = temprand; // Быстрое заполнение массива [-3;3]
- cout << "Элемент " << i << ":" << array[i] << endl;
- if (abs(array[i]) >= 1)
- {
- filter.push_back(array[i]); // std::Vector.push_back() - добавить переменную в вектор
- indexes.push_back(i);
- } // Добавление чисел в вектор
- }
- cout << "Отфильтрованные элементы (индекс в массиве :: значение)" << endl;
- for (int i = 0; i < filter.size(); i++) //filter.size() - длина вектора
- {
- cout << indexes[i] << " :: " << filter[i] << endl;
- }
- /*Задача 2. В матрице Y(4×4) определите максимальный элемент.
- Упорядочить строку по возрастанию, если пересекается с максимальным элементом. */
- int Y[4][4], max = 0, row; //Массив, максимальное значение, строка в которой максимальное значение, minimal in row - минимальное в строке
- for (int i = 0; i < 4; i++)
- {
- for (int k = 0; k < 4; k++)
- {
- Y[i][k] = rand() % 20 + 1;
- cout << Y[i][k] << " ";
- if (Y[i][k] > max)
- {
- max = Y[i][k]; //Наибольший элемент
- row = i; //Строка, в которой наибольшее число
- }
- }
- cout << "\n";
- }
- //Сортировка (метод пузырька)
- int temp; //Временная переменная для перестановки элементов массива местами
- for (int i = 0; i < 3; i++)
- {
- for (int j = 0; j < 3 - i; j++)
- {
- if (Y[row][j] > Y[row][j + 1]) //Если следующий элемент больше, то следующий элемент меняется с данным
- {
- temp = Y[row][j];
- Y[row][j] = Y[row][j + 1];
- Y[row][j + 1] = temp;
- }
- }
- }
- for (int i = 0; i < 4; i++)
- {
- cout << Y[row][i] << ", ";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment