0 / 0 / 1
Регистрация: 19.02.2013
Сообщений: 130

Нужно немного изменить код (сумма от последнего отрицательного элемента массива до первого положительного)

26.05.2013, 07:29. Показов 2941. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ такая проблема, мой код считает сумму от последнего отрицательного элемента массива до первого положительного. Как сделать чтобы он считал сумму элементов от первого положительного до последнего отрицательного. И все это должно быть в одном цикле for, другими словами 0(N). Я знаю что код косячный и что тут даже сумма не считается, но прошу помощи. Вот сам код:


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>
using namespace std;
int main()
{
    setlocale (0,"rus");
    int a;
    const int m=15;
    double v[m],s=0; 
    cout<<"Введите массив из 15 чисел\n";
    for (int i=0; i<m; ++i)
    {
        cin>>v[i];
 
        if (v[i]<0)
            a=i;                              
    } 
    if(a < 14)
        s = v[a] + v[a+1];     
    else
        s = v[a];               
    cout << "Сумма элементов массива s= " << s << endl;
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.05.2013, 07:29
Ответы с готовыми решениями:

Определить номера первого положительного и последнего отрицательного элементов массива
Определить порядковые номера и значения первого положительного и последнего отрицательного элементов целочисленного массива X(n). ...

Сумма элементов массива, расположенных после первого положительного элемента
Помогите доделать последний пункт задачи, пожалуйста! Работаю в Visual Studio 2005, так уж заставили.. В интернете искал, но что-то...

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

22
179 / 24 / 7
Регистрация: 16.05.2013
Сообщений: 181
26.05.2013, 13:25
Студворк — интернет-сервис помощи студентам
Почитаем твой первый пост
Цитата Сообщение от MishkaSh Посмотреть сообщение
Как сделать чтобы он считал сумму элементов от первого положительного до последнего отрицательного.
Я тебе и подсказал, как так сделать, а тут я узнаю, что нужно было делать
Цитата Сообщение от MishkaSh Посмотреть сообщение
от первого положительного до первого отрицательного
истолковывай свою просьбу четче

Вот исправленый вариант,
Цитата Сообщение от MishkaSh Посмотреть сообщение
от первого положительного до первого отрицательного
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
#include<iostream>
#include<clocale>
using namespace std;
 
int main() { setlocale(LC_ALL,"Rus");
 
    int mass[15];
    
    int perv_polozh = 0;
    int raschet = 0;
    
    for (int i=0; i<15; i++) {
        cout << "Введите " << i+1 << " число: "; cin >> mass[i];
        
        // находим первое положительное число 
        if(mass[i] > 0 && perv_polozh == 0) {
            perv_polozh = mass[i];
            raschet = mass[i];
        }
        // сумма от первого положительного до последнего отрицательного
        if(mass[i] < 0 && perv_polozh != 0 && raschet == perv_polozh) {
            raschet = raschet + mass[i];
        }
    }
    
    cout << "Первое положительное число: " << perv_polozh   << endl
         << "Сумма элементов массива: "    << raschet      << endl;
    
cin.get();
cin.get();
 
return 0;
}
и скрин
0
0 / 0 / 1
Регистрация: 19.02.2013
Сообщений: 130
26.05.2013, 17:10  [ТС]
Цитата Сообщение от Нету имени Посмотреть сообщение
Почитаем твой первый пост

Я тебе и подсказал, как так сделать, а тут я узнаю, что нужно было делать

истолковывай свою просьбу четче

Вот исправленый вариант,


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
#include<iostream>
#include<clocale>
using namespace std;
 
int main() { setlocale(LC_ALL,"Rus");
 
    int mass[15];
    
    int perv_polozh = 0;
    int raschet = 0;
    
    for (int i=0; i<15; i++) {
        cout << "Введите " << i+1 << " число: "; cin >> mass[i];
        
        // находим первое положительное число 
        if(mass[i] > 0 && perv_polozh == 0) {
            perv_polozh = mass[i];
            raschet = mass[i];
        }
        // сумма от первого положительного до последнего отрицательного
        if(mass[i] < 0 && perv_polozh != 0 && raschet == perv_polozh) {
            raschet = raschet + mass[i];
        }
    }
    
    cout << "Первое положительное число: " << perv_polozh   << endl
         << "Сумма элементов массива: "    << raschet      << endl;
    
cin.get();
cin.get();
 
return 0;
}
и скрин
Вложение 273039
И все равно он как то не так считает
0
179 / 24 / 7
Регистрация: 16.05.2013
Сообщений: 181
27.05.2013, 06:22
Вот подправил немного код, для варианта
от первого положительного до последнего отрицательного

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<clocale>
using namespace std;
 
int main() { setlocale(LC_ALL,"Rus");
 
    int mass[15];
    
    int perv_polozh     = 0;
    int posledniy_otriz = 0;
    int raschet         = 0;
    int start, end;
    
    for (int i=0; i<15; i++) {
        cout << "Введите " << i+1 << " число: "; cin >> mass[i];
        
        // находим первое положительное число 
        if(mass[i] > 0 && perv_polozh == 0) {
            perv_polozh = mass[i];
            start = i;
        }
        // находим первое отрицательное число
        if(mass[i] < 0 && perv_polozh != 0) {
            posledniy_otriz = mass[i];
            end = i;
        }
    }
    
    while (start <= end) {
        raschet = raschet + mass[start];
        start++;
    } 
    
    cout << "Первое положительное число: " << perv_polozh   << endl
         << "Последние отрицательное число: " << posledniy_otriz << endl
         << "Сумма элементов массива: "    << raschet       << endl;
    
cin.get();
cin.get();
 
return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.05.2013, 06:22

Сумма элементов массива, расположенных после первого положительного элемента
Задание: В одномерном массиве, состоящем из n действительных элементов, найдите: 1) номер максимального по модулю элемента массива; ...

Найти величину и номер первого отрицательного и последнего положительного элементов в массиве
хелп с программой. Найти величину и номер первого отрицательного и последнего положительного элементов в массиве вещественного типа...

Одно число вставить после первого отрицательного элемента массива, второе – после последнего положительного
Вот условие - Дан одномерный массив. Надо одно число вставить после первого отрицательного элемента массива, второе – после последнего...

В векторе (одномерном массиве) найти: разность первого положительного и последнего отрицательного элемента
В заданном векторе (одномерном массиве) найти: разность первого положительного и последнего отрицательного элемента

Найти разность первого положительного и последнего отрицательного элементов массива
В заданном векторе (одномерном массиве) найти: разность первого положительного и последнего отрицательного эле- мента ,ввод данных из...


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

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

Новые блоги и статьи
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru