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

Cумма элементов между членами массива - C++

Восстановить пароль Регистрация
 
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
20.12.2011, 19:26     Cумма элементов между членами массива #1
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{int k1,k2,j,s;
double a[]={1,5,8,3,-2,5,6,89,-4,7,1};
int n=11;
for(j=1;j<n;j++){
if (a[j]<0){
k1=j;
}
}
for(j=k1+1;j<n;j++){
if (a[j]<0){
k2=j;            
}
}
for(j=k1+1;j<k2;j++){
s=0;
s=s+a[j];
}     
printf("Summa elementov megdy 1 i 2 otricatelnym chlenom=%d\n",s);                            
    system("PAUSE");
    return EXIT_SUCCESS;
}
Вот такая получается программа, но рез-т почему не считает. Само задание:в одномерном массиве, состоящем из n вещественных элементов, вычислить: сумму элементов массива, расположенных между первым и вторым отрицательными элементами
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2011, 19:26     Cумма элементов между членами массива
Посмотрите здесь:

произведение элементов массива, расположенных между максимальным и минимальным элементами массива C++
C++ Произведение элементов массива, расположенных между максимальным и минимальным элементами массива
Cумма отрицательных элементов массива C++
Cумма элементов массива с нечетными номерами C++
Функция должна вычислять разницы между суммой положительных элементов массива и суммой модулей отрицательных элементов массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
20.12.2011, 19:47     Cумма элементов между членами массива #2
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
#include <iostream>
#include <iterator>
#include <algorithm>
#include <vector>
#include <numeric>
 
using namespace std;
 
template <typename T>
bool lessThan0 (const T& item) {
    return item < 0;
}
 
int main()
{
    int n;
    cout << "Size: ";
    cin >> n;
    vector<double> vec(n);
    for(int i = 0; i < n; i++)
    {
        cout << "vec[" << i << "]: ";
        cin >> vec[i];
    }
    vector<double>::iterator firstNegative = find_if(vec.begin(), vec.end(), lessThan0<double>);
    vector<double>::iterator secondNegative = find_if(firstNegative + 1, vec.end(), lessThan0<double>);
    if (firstNegative == vec.end())
    {
        cout << "in the array are no negative numbers" << endl;
        return EXIT_SUCCESS;
    }
    if ((firstNegative == secondNegative) || (secondNegative == vec.end()))
    {
        cout << "In array one negative number" << endl;
        return EXIT_SUCCESS;
    }
    double sum = accumulate(firstNegative + 1, secondNegative, 0.0);
    copy(vec.begin(), vec.end(), ostream_iterator<int>(cout, " "));
    cout << endl;
    cout << "Sum: " << sum << endl;
    return EXIT_SUCCESS;
}
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
20.12.2011, 20:01  [ТС]     Cумма элементов между членами массива #3
Не могли бы вы лучше подправить моё, а то у вас очень сложно для меня написано)) я такое ещё не проходил и не смогу защитить.
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
20.12.2011, 20:11     Cумма элементов между членами массива #4
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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[]){
    int k1 = -1, k2 = -1, j;
    double s;
    double a[]={ 1, 5, 8, 3, -2, 5, 6, 89, -4, 7, 1 };
    int n = 11;
    for(j = 0; j < n; j++)
        if (a[j] < 0.0)
        {
            k1 = j;
            break;
        }
 
    for(j = k1 + 1; j < n; j++)
        if (a[j] < 0)
        {
            k2 = j;
            break;
        }
    s = 0.0;
    if (k1 == -1 || k2 == -1)
    {
        cout << "Not found" << endl;
        return EXIT_SUCCESS;
    }
    for(j = k1 + 1; j < k2; j++)
        s = s + a[j];
    cout << "Summa: " << s << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
nake
 Аватар для nake
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 33
20.12.2011, 21:22  [ТС]     Cумма элементов между членами массива #5
спасибо большое, всё работает
Yandex
Объявления
20.12.2011, 21:22     Cумма элементов между членами массива
Ответ Создать тему
Опции темы

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