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

Не могу понять, как найти сумму - C++

Восстановить пароль Регистрация
 
Alex_Reilly
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 26
04.12.2011, 18:11     Не могу понять, как найти сумму #1
Здравствуйте. Программу делаю, никак не могу понять, как сделать вот задание:
"найти сумму элементов массива, расположенных между первым и вторым отрицательными элементами."
Идей никаких, ибо я не могу никак вьехать. Какие числа могут стоять между первым и вторым орицательным элементами. Пожалуйста помогите, завтра сдавать уже.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
04.12.2011, 18:14     Не могу понять, как найти сумму #2
Цитата Сообщение от Alex_Reilly Посмотреть сообщение
Идей никаких, ибо я не могу никак вьехать. Какие числа могут стоять между первым и вторым орицательным элементами.
2, 3, 4, -1, 5, 6, 7, -2, 8, 9, -3, 10
Жирным выделены первый и второй отрицательные элементы. Курсивом элементы, сумму которых необходимо найти.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.12.2011, 18:20     Не могу понять, как найти сумму #3
Цитата Сообщение от Alex_Reilly Посмотреть сообщение
Какие числа
Всякие. Всякие.
C++
1
2
3
4
5
6
7
8
9
10
int sum = 0;
int i;
for(i = 0; (i < arrSize) && (arr[i] >= 0); ++i)
    ;
for(++i; (i < arrSize) && (arr[i] >= 0); sum += arr[i], ++i)
    ;
if(i == arrSize)
//no first or second negative number
else
//sum - сумма элементов между первым и последним отрицательным
Alex_Reilly
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 26
04.12.2011, 18:26  [ТС]     Не могу понять, как найти сумму #4
Ок, насчёт элементов сейчас попробую. Есть ещё одна проблема. Программа рабочая, всё работает нормально, но есть одно НО - она вконце мне пишет толи ошибку, толи не знаю как это назвать. Вообщем пишет что я травмирую память в Стэке..Вот код программы
HEADER(там где функции обьявляю)
double Mass_Function_01(double massive[], int n);
void Mass_Function_Replace(double massive[], int n);

Inizialization_of_functions(там где инициализируются функции)
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
#include "stdafx.h"
#include <iomanip>
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <conio.h>
using namespace std;
 
double Mass_Function_01(double massive[], int n)
{
    double min = massive[ 0 ];
    for (int i = 0; i < n; i ++)
    {
        if ( massive[ i ]< min ) 
            min = massive[ i ];
    }
    return min;
}
 
void Mass_Function_Replace(double massive[], int n)
{       
    double temp;
    for(int i =0; i < n-1; i++)
    {
        if(abs(massive[i])>1)
          double temp;
               temp = massive[i];
               massive[i] = massive[i+1];
               massive[i+1] = temp;
    }
    
        cout <<"\nMassive has been replaced correctly\n";
            for (int i = 0; i < n; i ++)
                cout <<"\n"<< setw(n) << massive[i] <<endl;
                
        
 
}
MAIN
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
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include "Header_functions.h"
#include <iomanip>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n=1;
    double *massive; massive=new double[n];
    int v;
    cout<<"\nEnter, how many elements would you like"<<endl;
    cin>>n;
    
    cout<<"\nEnter please your elements"<<endl;
        for (int i = 0; i < n; i ++)
        cin >> setw(n) >> massive[ i ];                                                                 
        cout<<"\nThis is your massive:";
    for (int i = 0; i < n; i ++)
        cout <<"\n"<< setw(n) << massive[i] <<endl;
    double min;
    min = Mass_Function_01(massive,n) ;
        cout<<"Min element is "<<min;
        cout<<"\n";
        cout<<"Replace elements for next task?\n1-Yes\n2-No\n";
        cin>>v;
        cout<<"\n";
    if (v==1)
    {
        Mass_Function_Replace(massive, n);
    }
        else
        {
            cout<<"\nOk, but I also will run the second task. Please wait a second...";
            Mass_Function_Replace(massive, n);
 
        }
 
 
    
    system("pause");
    delete []massive;
    return 0;
}
 Комментарий модератора 
Код выделяем тегами!
Yandex
Объявления
04.12.2011, 18:26     Не могу понять, как найти сумму
Ответ Создать тему
Опции темы

Текущее время: 04:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru