Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <windows.h>
- #include <vector>
- using namespace std;
- double max_arr_sum(double arr[], int len) {
- vector<double> all_sums;
- vector<vector<double>> all_arrays;
- double temp_sum{}, max_sum{};
- vector<double> temp_subarray;
- for (int i = 0; i < len; i++) {
- temp_sum += arr[i];
- temp_subarray.push_back(arr[i]);
- if (temp_sum <= 0) {
- all_sums.push_back(temp_sum);
- all_arrays.push_back(temp_subarray);
- temp_sum = 0;
- temp_subarray.clear();
- continue;
- }
- else {
- all_sums.push_back(temp_sum);
- all_arrays.push_back(temp_subarray);
- }
- }
- max_sum = all_sums[0];
- int max_index = 0;
- for (int i = 1; i < all_sums.size(); i++) {
- if (all_sums[i] > max_sum) {
- max_sum = all_sums[i];
- max_index = i;
- }
- }
- cout << "Максимальний підмасив: ";
- for (int i = 0; i < all_arrays[max_index].size(); i++) {
- cout << all_arrays[max_index][i] << " ";
- }
- cout << endl;
- return max_sum;
- }
- int main()
- {
- SetConsoleOutputCP(1251);
- SetConsoleCP(1251);
- int N{};
- double total_product{ 1 };
- string words_array[10]{ "перший", "другий", "третій", "четвертий", "п'ятий", "шостий", "сьомий", "восьмий", "дев'ятий", "десятий" };
- while (true) {
- cout << "Введіть бажану кількість елементів у масиві (від 2 до 10): ";
- cin >> N;
- if (cin.fail() || N < 2 || N > 10) {
- cin.clear();
- cin.ignore(32767, '\n');
- cout << "Число було введено неправильно. Спробуйте ще раз!" << endl;
- continue;
- }
- else {
- break;
- }
- }
- double* array = new double[N];
- for (int i = 0; i < N; i++) {
- while (true) {
- cout << "Введіть " << words_array[i] << " елемент масиву: ";
- cin >> array[i];
- if (cin.fail()) {
- cin.clear();
- cin.ignore(32767, '\n');
- cout << "Число було введено неправильно. Спробуйте ще раз!" << endl;
- continue;
- }
- else {
- break;
- }
- }
- }
- cout << "Максимальна сума будь-яких підмасивів вихідного масиву: " << max_arr_sum(array, N);
- delete[] array;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement