Форум программистов, компьютерный форум CyberForum.ru

Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ коментарий к телу программы2 http://www.cyberforum.ru/cpp-beginners/thread891342.html
помогите пожалуйста. #include <iostream> const int N=10,M=10; int sum(int (&arr), int stolb) { int total=0; for (int i=0;i<10;i++) total+=arr;
C++ Определить сумму тех вещественных чисел, которые больше P Даны натуральное число n и натуральные числа b1, b2, …, bn. Определить сумму тех вещественных чисел которые больше P. private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { int s,n,p; int mas; for (int i = 0; i < 10; i++) { if (mas>45) {s=s+mas;}} this->label3->Text=Convert::ToString(s); Числа получаются огромные. вместо n стоит 10,... http://www.cyberforum.ru/cpp-beginners/thread891340.html
Программа, которая позволяет ввести неограниченное количество значений и сохранить их в массив, размещенный в свободном хранилище C++
Напишите программу на «родном» С++, которая позволяет ввести неограниченное количество значений и сохранить их в массив, размещенный в свободном хранилище. Программа должна вывести введенные значения, по пять в строке, после чего вычислить и показать их среднюю величину. Начальный размер массива должен составлять не мене пяти элементов. При необходимости программа должна создавать массив с таким...
C++ Сумма и перестановка элементов массива
Здравствуйте уважаемые форумчане! у меня есть задание: 1 - Найти максимальный по модулю элемент массива. 2 - Найти сумму элементов массива, расположенных между первым и вторым положительными элементами. 3 - Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных. 1 - я сделал. 2 - сделано, но нужно чтобы при поиске номера первого элемента цикл...
C++ Опишите функцию анализа номера телефона, обработайте ошибку (методом обработки исключений) http://www.cyberforum.ru/cpp-beginners/thread891327.html
Опишите функцию анализа номера телефона, обработайте ошибку (методом обработки исключений) задания номера в неверном формате. Номер телефона вводится одной строкой. Правильный формат (+371)12345678 Спасибо заранее за помощь!
C++ проверка элементов матрицы Составить программу, которая проверяет, является ли элементы линейных таблиц В C расположенными по возрастанию. Инициализацию, вывод элементов массива, их обработку выполнить в виде отдельных функций. подробнее

Показать сообщение отдельно
drageon
0 / 0 / 0
Регистрация: 13.01.2013
Сообщений: 10

Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами - C++

04.06.2013, 22:16. Просмотров 3056. Ответов 6
Метки (Все метки)

Хелп!!!

Задание:
Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами.

На самом деле прога почти готова. Она адекватно выдаёт мне Первый и Второй отрицательный элемент.
Но вот неправильно считает сумму между ними

Подскажите, пожалуйста!

Вот код:

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <iostream>
#include <clocale>
using namespace std;
int const n=5;
 
//=================== Номер 1 отриц. эл-та =======================
double otric1(double massiv[n])
{
    
    int i;
    int n1;
    //int n2=0;
    for (i = 0; i <= n; i++) //определение номера первого отрицательного элемента
        {
        if (massiv[i] < 0)
                {
                n1=i;
                return n1;
                }  
        }
}
//=================== Номер 1 отриц. эл-та =======================
 
 
 
//=================== Номер 2 отриц. эл-та =======================
double otric2(double massiv[n])
{
    int i;
    int n2;
    int n1;
    n1=otric1(massiv);
    for (i = n1+1; i <= n; i++) //определение номера второго отрицательного элемента
        {
        if (massiv[i] < 0)
                {
                n2 = i;
                return n2;
                }
        }   
}
//=================== Номер 2 отриц. эл-та =======================
 
 
 
//=================== Сумма между двумя отриц. эл-тами ============
double summa(double massiv[n])
{
    int i;
    int n2;
    int n1;
    n1=otric1(massiv);
    n2=otric2(massiv);
        if ((n2 != 0) && (n1 != n2)) //проверка на существование границ отрицательных элементов
             {
             int sum_mezhdu=0;
 
             //нахождение суммы элементов между первым и последним отрицательным элементом
             for (i = n1+1; i <= n2; i++)
                {
                sum_mezhdu += massiv[i];      //sum_mezhdu=n1+n2;    (Если сложить их индексы, то прога пашет)
                return sum_mezhdu;
                }
              }
        else
               cout<<("В массиве отсутствуют два отрицательных элемента!\n");
}
//=================== Сумма между двумя отриц. эл-тами ============
 
 
int main()
{
    setlocale(LC_ALL, "RUS");
    double massiv[n];
    int i;
    double max=0;
    for (i=0;i<=(n-1);i++)
    {
        cout<<"Введите "<<(i+1)<<" элемент: ";
        cin>>massiv[i];
        while (cin.fail())
        {
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(),'\n');
            cout << "Введено некорректное значение. Введите "<<(i+1)<<" элемент: ";
            cin >> massiv[i];
        }
    }
    
 
    cout<<("номер 1 отриц эл-та: = ")<<otric1(massiv)<<endl; // Норм считает (Номер 1 отриц. эл-т)
 
    cout<<("номер 2 отриц эл-та: = ")<<otric2(massiv)<<endl; // Норм считает (Номер 2 отриц. эл-т)
 
    cout<<("Сумма между 2 отриц: = ")<<summa(massiv)<<endl;  // Пишет не то :(
 
    system ("PAUSE");
    return 0;
    
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru