Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 1
Регистрация: 19.02.2013
Сообщений: 130
1

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

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

Author24 — интернет-сервис помощи студентам
Народ такая проблема, мой код считает сумму от последнего отрицательного элемента массива до первого положительного. Как сделать чтобы он считал сумму элементов от первого положительного до последнего отрицательного. И все это должно быть в одном цикле 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2013, 07:29
Ответы с готовыми решениями:

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

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

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

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

22
179 / 24 / 7
Регистрация: 16.05.2013
Сообщений: 181
26.05.2013, 13:25 21
Author24 — интернет-сервис помощи студентам
Почитаем твой первый пост
Цитата Сообщение от 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  [ТС] 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
И все равно он как то не так считает
0
179 / 24 / 7
Регистрация: 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;
}
Нужно немного изменить код (сумма от последнего отрицательного элемента массива до первого положительного)
1
27.05.2013, 06:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2013, 06:22
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru