Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <vector>
- #include <numeric>
- #include <algorithm>
- #include <iostream>
- #include <ctime>
- #include <iomanip>
- int main()
- {
- using namespace std;
- srand(time(NULL));
- const int N = 10;
- const int MAX = 100;
- const int MIN = -100;
- // Инициализируем массив случайными числами
- vector<double> array(N);
- for (double & i : array)
- i = rand() % (MAX - MIN + 1) + MIN;
- // Выводим массив на экран
- cout << "array: " << endl;
- for (int i = 0; i != array.size(); ++i)
- cout << "array[" << i << "] = " << array[i] << endl;
- // ====================== Задание 1.1 ======================
- cout << endl << "Task 1: " << endl;
- // Получаем указатель на максимальный элемент
- vector<double>::iterator iMax = max_element(array.begin(), array.end());
- // Находим сумму элементов после максимального
- double sum = accumulate(iMax, array.end(), 0.0);
- // Выведем сумму на экран
- cout << "Sum of elements after one at " << (iMax - array.begin()) << " is " << sum << endl << endl;
- // ====================== Задание 1.2 ======================
- cout << "Task 2: " << endl;
- // Находим среднее арифметическое
- double average = accumulate(array.begin(), array.end(), 0.0) / array.size();
- int deleted = 0;
- cout << "Average value is " << average << endl;
- // Удаляем элементы, которые меньше чем среднее арифметическое
- for (vector<double>::iterator i = array.begin(); i != array.end();)
- if (*i < average)
- {
- i = array.erase(i);
- ++deleted;
- }
- else
- ++i;
- // Дозаписываем массив нулями
- for (int i = 0; i != deleted; ++i)
- array.push_back(0.0);
- // Выводим массив на экран
- for (int i = 0; i != array.size(); ++i)
- cout << "array[" << i << "] = " << array[i] << endl;
- cout << endl;
- // ====================== Задание 1.3 ======================
- cout << "Task 3: " << endl;
- // Сортируем массив по возрастанию
- sort(array.begin(), array.end());
- // Выводим массив на экран
- for (int i = 0; i != array.size(); ++i)
- cout << "array[" << i << "] = " << array[i] << endl;
- // ====================== Задание 1.4 ======================
- cout << endl << "Task 4: " << endl;
- double numberToFind = 0.0;
- cout << "Input number you want to find: " << endl;
- cin >> numberToFind;
- auto foundElement = find(array.begin(), array.end(), numberToFind);
- if (foundElement == array.end())
- cout << "Number not found." << endl;
- else
- cout << "Number " << *foundElement << " was found on the " << foundElement - array.begin() << " position" << endl;
- system("pause>nul");
- system("cls");
- // ====================== Задание 2.1 ======================
- vector<vector<double>> matr(N);
- // Инициализируем матрицу случайными значениями
- for (auto & row : matr)
- for (int i = 0; i != N; ++i)
- row.push_back(rand() % (MAX - (MIN/10) + 1) + (MIN/10));
- // Выводим матрицу на экран
- for (auto row : matr)
- {
- for (auto elem : row)
- cout << setw(4) << elem;
- cout << endl;
- }
- // Находим сумму элеметов всех строк, где есть хотя бы один отрицательный элемент
- sum = 0.0;
- int counter = 0;
- for (auto row : matr)
- for(auto elem : row)
- if (elem < 0.0)
- {
- sum = accumulate(row.begin(), row.end(), sum);
- ++counter;
- break;
- }
- cout << "Sum = " << sum << " in " << counter << " rows" << endl;
- system("pause>nul");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement