Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 16.06.2012
Сообщений: 37
1

Сумма элементов массива находящих первым и последным положительным и элементами

20.07.2012, 10:26. Просмотров 739. Ответов 12
Метки нет (Все метки)

Сумма элементов массива находящих первым и последным положительным и элементами
например: -6 -4 3 -4 8 9 7 -7 4 -1 здесь найти сумма -4 8 9 7 -7
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.07.2012, 10:26
Ответы с готовыми решениями:

Сумма элементов между первым положительным элементом массива и последним отрицательным
В одномерном целочисленном массиве( элементы массива генерируются случайным образом диапазоне от...

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

Вычислить разницу элементов массива, что расположены между первым отрицательным та вторым положительным элементами
Всем привет,ребят подкорректируйте пожалуйста ф-цию,то работает не правильно :cry: Вот задание:...

Сумма элементов массива через один между первым отрицательным и последним положительным
помогите написать программу расчета сумму элементов массива через один между первым отрицательным и...

12
Модератор
Эксперт Python
26643 / 13895 / 2641
Регистрация: 12.02.2012
Сообщений: 22,778
Записей в блоге: 1
20.07.2012, 10:51 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
#include <iostream.h>
 
int main(int argc, char* argv[])
{
 
    int Arr[]={-6, -4, 3, -4, 8, 9, 7, -7, 4, -1};
    int n=sizeof(Arr)/sizeof(int);
    int i,ib,ie,s=0;
 
    // Èùåì íîìåð 1-ãî ïîëîæèòåëüíîãî
 
    for (i=0; i<n; i++)
        if (Arr[i] > 0) 
        {
            ib=i;
            break;
        }
 
    // Èùåì íîìåð ïîñëåäíåãî ïîëîæèòåëüíîãî
 
    for (i=n-1; i>=0; i--)
        if (Arr[i] > 0) 
        {
            ie=i;
            break;
        }
 
    // Ñóììèðóåì
 
    for (i=ib+1; i<ie; i++)
    { 
        cout << Arr[i] << " ";
        s+=Arr[i];
    }
 
    cout << endl;
    cout << "S=" << s << endl;
 
    return 0;
}
0
Миниатюры
Сумма элементов массива находящих первым и последным положительным и элементами  
Эксперт С++
4251 / 2225 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 11:14 3
Catstail, для корректной работы осталось рассмотреть два случая:
1. В массиве не более одного положительного элемента;
2. В массиве только два положительных элемента, которые стоят рядом.
В этих случаях сумма неопределена.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
#define N 10
int main()
{
   int s = 0, i, i1, i2, a[N] = {-6, -4, 3, -4, 8, 9, 7, -7, 4, -1};
   for(i1 = 0; i1 < N && a[i1] <= 0; i1++)
      ;
   for(i2 = N - 1; i2 >= 0 && a[i2] <= 0; i2--)
      ;
   if (i2 - i1 > 1)
   {
       for (i = i1 + 1; i < i2; i++)
          s += a[i];
       printf("s = %d\n", s);
   }
   else puts("no sum");
   return 0;
}
1
Модератор
Эксперт Python
26643 / 13895 / 2641
Регистрация: 12.02.2012
Сообщений: 22,778
Записей в блоге: 1
20.07.2012, 11:15 4
В обоих этих случаях моя программы выдаст нуль. Что, как я понимаю, правильно... Ибо в условиях это не оговаривалось.
1
Эксперт С++
4251 / 2225 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 11:17 5
Цитата Сообщение от Catstail Посмотреть сообщение
В обоих этих случаях моя программы выдаст нуль. Что, как я понимаю, правильно...
Чему равна сумма элементов пустого множества?
0
Модератор
Эксперт Python
26643 / 13895 / 2641
Регистрация: 12.02.2012
Сообщений: 22,778
Записей в блоге: 1
20.07.2012, 11:20 6
В рекурсивных программах сумма элементов пустого множества полагается равной нулю
0
Эксперт С++
4251 / 2225 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 11:21 7
Но у Вас же итаративный алгоритм Да и это неправильно, рекурсия, итерация, ответ правильный должен быть.
0
Модератор
Эксперт Python
26643 / 13895 / 2641
Регистрация: 12.02.2012
Сообщений: 22,778
Записей в блоге: 1
20.07.2012, 11:26 8
Не принципиально. Сумму элементов пустого множества удобно считать равной нулю. При этом не возникает никаких противоречий ни с основами математики, ни с алгоритмами... А условия задачи нужно формулировать четко (например, так: ... при отсутствии положительных элементов выдать... ; если два единственных положительных элемента стоят рядом - выдать...).

Добавлено через 59 секунд
Цитата Сообщение от Thinker Посмотреть сообщение
ответ правильный должен
- с чьей точки зрения?
0
Эксперт С++
4251 / 2225 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 11:27 9
Согласен, не принципиально. Только по ответу не понятно будет, пустое множество или нет.
0
538 / 443 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
20.07.2012, 11:27 10
STL
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <functional>
#include <numeric>
 
int main( int argc, char *argv[] )
{
    int arr[] = { -1, 2, 3, 4, 5, -6, 7, -8, 9 };
    std::vector < int > vec( arr, arr + sizeof( arr ) / sizeof( *arr ) );
    std::copy( std::begin( vec ), std::end( vec ), std::ostream_iterator < int >( std::cout, " " ) );
    std::cout << std::endl;
    
    int total = 0, result;
 
    result = std::accumulate( std::find_if( vec.begin(), vec.end(), std::bind2nd( std::greater < int >(), 0 ) ),
                              std::find_if( vec.rbegin(), vec.rend(), std::bind2nd( std::greater < int >(), 0 ) ).base(),
                              total );  
    
    std::cout << "Result: " << result << std::endl;
    return 0;
}
0
Эксперт С++
4251 / 2225 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 11:28 11
Цитата Сообщение от Catstail Посмотреть сообщение
- с чьей точки зрения?
С философской
1
Модератор
Эксперт Python
26643 / 13895 / 2641
Регистрация: 12.02.2012
Сообщений: 22,778
Записей в блоге: 1
20.07.2012, 11:28 12
Цитата Сообщение от Thinker Посмотреть сообщение
Согласен, не принципиально. Только по ответу не понятно будет, пустое множество или нет.
- вот здесь я согласен с Вами... Но это проблема не моя, а постановщика...
0
Эксперт С++
4251 / 2225 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 11:29 13
Цитата Сообщение от Catstail Посмотреть сообщение
- вот здесь я согласен с Вами... Но это проблема не моя, а постановщика...
Замечательно, мы с Вами это понимаем, автор темы пусть сам теперь разбирается.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.07.2012, 11:29

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

Сумма элементов массива между первым и последним положительными элементами
Привет! Я ввожу одномерный массив вручную и вопрос: Как посчитать и вывести суму элементов,...

Сумма элементов между первым и последним нулевыми элементами одномерного массива
Пожалуйста помогите. В одномерном массиве определить к-во элементов между первым и последним...

Сумма элементов массива, расположенных между первым и последним положительными элементами
14.В одномерном массиве, состоящем из n вещественных элементов, вычислить: а) минимальный элемент...

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


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

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

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