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

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

Восстановить пароль Регистрация
 
 
MishkaSh
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 127
26.05.2013, 07:29     Нужно немного изменить код (сумма от последнего отрицательного элемента массива до первого положительного) #1
Народ такая проблема, мой код считает сумму от последнего отрицательного элемента массива до первого положительного. Как сделать чтобы он считал сумму элементов от первого положительного до последнего отрицательного. И все это должно быть в одном цикле 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2013, 07:29     Нужно немного изменить код (сумма от последнего отрицательного элемента массива до первого положительного)
Посмотрите здесь:

C++ Нахождение последнего отрицательного элемента массива
Определить порядковые номера и значения первого положительного и п оследнего отрицательного элементов массива Z. C++
Найти величину и номер первого отрицательного и последнего положительного элементов в массиве C++
Найти номер последнего отрицательного элемента массива C++
C++ Матрица динамическая. 1. максимальный элемент массива; 2. сумму элементов массива, расположенных до последнего положительного элемента
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Нету имени
177 / 22 / 2
Регистрация: 16.05.2013
Сообщений: 181
26.05.2013, 13:25     Нужно немного изменить код (сумма от последнего отрицательного элемента массива до первого положительного) #21
Почитаем твой первый пост
Цитата Сообщение от 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;
}
и скрин
Нужно немного изменить код (сумма от последнего отрицательного элемента массива до первого положительного)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MishkaSh
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 127
26.05.2013, 17:10  [ТС]     Нужно немного изменить код (сумма от последнего отрицательного элемента массива до первого положительного) #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
#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
И все равно он как то не так считает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2013, 06:22     Нужно немного изменить код (сумма от последнего отрицательного элемента массива до первого положительного)
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Нету имени
177 / 22 / 2
Регистрация: 16.05.2013
Сообщений: 181
27.05.2013, 06:22     Нужно немного изменить код (сумма от последнего отрицательного элемента массива до первого положительного) #23
Вот подправил немного код, для варианта
от первого положительного до последнего отрицательного

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;
}
Нужно немного изменить код (сумма от последнего отрицательного элемента массива до первого положительного)
Yandex
Объявления
27.05.2013, 06:22     Нужно немного изменить код (сумма от последнего отрицательного элемента массива до первого положительного)
Ответ Создать тему
Опции темы

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