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

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

Восстановить пароль Регистрация
 
AZIZBEK
 Аватар для AZIZBEK
0 / 0 / 0
Регистрация: 16.06.2012
Сообщений: 37
20.07.2012, 10:26     Сумма элементов массива находящих первым и последным положительным и элементами #1
Сумма элементов массива находящих первым и последным положительным и элементами
например: -6 -4 3 -4 8 9 7 -7 4 -1 здесь найти сумма -4 8 9 7 -7
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2012, 10:26     Сумма элементов массива находящих первым и последным положительным и элементами
Посмотрите здесь:

C++ Сумма элементов массива, расположенных между первым и последним положительными элементами
C++ Сумма элементов массива, расположенных между первым и последним отрицательными элементами
разница элементов массива, расположенных между первым отрицательным и вторым положительным элементами C++
Сумма элементов массива, расположенных между первым и последним положительным элементом C++
Сумма элементов между первым положительным элементом массива и последним отрицательным C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
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;
}
Миниатюры
Сумма элементов массива находящих первым и последным положительным и элементами  
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 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;
}
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
20.07.2012, 11:15     Сумма элементов массива находящих первым и последным положительным и элементами #4
В обоих этих случаях моя программы выдаст нуль. Что, как я понимаю, правильно... Ибо в условиях это не оговаривалось.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 11:17     Сумма элементов массива находящих первым и последным положительным и элементами #5
Цитата Сообщение от Catstail Посмотреть сообщение
В обоих этих случаях моя программы выдаст нуль. Что, как я понимаю, правильно...
Чему равна сумма элементов пустого множества?
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
20.07.2012, 11:20     Сумма элементов массива находящих первым и последным положительным и элементами #6
В рекурсивных программах сумма элементов пустого множества полагается равной нулю
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 11:21     Сумма элементов массива находящих первым и последным положительным и элементами #7
Но у Вас же итаративный алгоритм Да и это неправильно, рекурсия, итерация, ответ правильный должен быть.
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
20.07.2012, 11:26     Сумма элементов массива находящих первым и последным положительным и элементами #8
Не принципиально. Сумму элементов пустого множества удобно считать равной нулю. При этом не возникает никаких противоречий ни с основами математики, ни с алгоритмами... А условия задачи нужно формулировать четко (например, так: ... при отсутствии положительных элементов выдать... ; если два единственных положительных элемента стоят рядом - выдать...).

Добавлено через 59 секунд
Цитата Сообщение от Thinker Посмотреть сообщение
ответ правильный должен
- с чьей точки зрения?
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 11:27     Сумма элементов массива находящих первым и последным положительным и элементами #9
Согласен, не принципиально. Только по ответу не понятно будет, пустое множество или нет.
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 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;
}
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 11:28     Сумма элементов массива находящих первым и последным положительным и элементами #11
Цитата Сообщение от Catstail Посмотреть сообщение
- с чьей точки зрения?
С философской
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
20.07.2012, 11:28     Сумма элементов массива находящих первым и последным положительным и элементами #12
Цитата Сообщение от Thinker Посмотреть сообщение
Согласен, не принципиально. Только по ответу не понятно будет, пустое множество или нет.
- вот здесь я согласен с Вами... Но это проблема не моя, а постановщика...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2012, 11:29     Сумма элементов массива находящих первым и последным положительным и элементами
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 11:29     Сумма элементов массива находящих первым и последным положительным и элементами #13
Цитата Сообщение от Catstail Посмотреть сообщение
- вот здесь я согласен с Вами... Но это проблема не моя, а постановщика...
Замечательно, мы с Вами это понимаем, автор темы пусть сам теперь разбирается.
Yandex
Объявления
20.07.2012, 11:29     Сумма элементов массива находящих первым и последным положительным и элементами
Ответ Создать тему
Опции темы

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