Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
leach
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 19
#1

Сумма исходных членов неубывающей последовательности

27.11.2017, 18:59. Просмотров 84. Ответов 0
Метки нет (Все метки)

Задание: Дан массив действительных чисел размером n. Если в результате замены отрицательных членов последовательности их квадратами члены будут образовывать неубывающую последовательность, то получить сумму членов исходной последовательности. В противном случае получить их произведение.

Не могу понять в чём проблемам, но программа работает не корректно.
Например если я задаю числа: -3 -6 100 -12 500, то программа выдаёт сумму 579 и этот правильно, т.к. последовательность не убывающая (9, 36, 100, 144, 500). Но если я задам не последовательность, а просто набор чисел вроде -4 100 25 50 -8 -15 (16, 100, 25, 50 64, 255), то программа вместо того чтобы посчитать произведение, опять считает сумму. Где ошибка?

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "stdafx.h"
#include <iostream>
#include <cstdio>
#include <math.h>
#include <conio.h>
#include <ctime>
#include <locale>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "RUS");
    int n;
    bool flag;
    double sum = 0;
    double proizv = 1;
 
    cout << "Введите размер масива: " << endl;
    cin >> n;
    double *arr = new double[n];//Динамический массив задаётся пользователем в ходе работы программы
    cout << "Введите элементы массива: " << endl;
    for (int i = 0; i<n; ++i)
    {
        cin >> arr[i];
        if (i != 0)
            if ((arr[i + 1] * arr[i + 1]>arr[i] * arr[i]) && (arr[i]<0))
                flag = true;
    }
 
    if (flag = true)
    {
        for (int i = 0; i<n; ++i)
            sum += arr[i];
        cout << "Сумма массива равна: " << sum << endl;
 
    }
    else {
        for (int i = 0; i < n; ++i)
            proizv *= arr[i];
        cout << "Произведение массива равно: " << proizv << endl;
    }
    delete[]arr;//освобождаем память
 
    system("pause");
    return 0;
}

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2017, 18:59
Ответы с готовыми решениями:

C++ сумма членов последовательности
Натолкните на правильный путь. Не могу понять как это реализовать. Задание...

Сумма членов последовательности
не могу посчитать сумму членов А(n)= 1/2^n + 1/3^n # include &lt;iostream&gt; #...

сумма соседних членов последовательности
Даны числа а1, а2, a(n) Известно, что а1&gt;0 и что среди а2, а3, a(n) есть хотя...

Сумма определенных членов последовательности
Даны натуральное n, целые числа a1, ... , an. Необходимо получить сумму тех...

Не превышает ли сумма членов последовательности 50?
Доброго времени суток. Сижу на практике помогите очень надо) Даны...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2017, 18:59

Сумма первых членов последовательности
Здравствуйте! Помогите пожалуйста...у меня считает суму всей...

Получить число отрицательных членов последовательности и сумму нулевых членов последовательности
Помогите решить, данные задачки: 1. Даны целые числа a1,..., a15. Получить...

Чему равна минимальная сумма первых членов последовательности, превышающая некоторое заданное число R
Помогите решить! Дана последовательность 1/2, 1/3, 1/4, … . Чему равна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru