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

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

Восстановить пароль Регистрация
 
lulu13
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 17
27.05.2013, 23:11     Вычислить разницу элементов массива, что расположены между первым отрицательным та вторым положительным элементами #1
Всем привет,ребят подкорректируйте пожалуйста ф-цию,то работает не правильно
Вот задание: Вычислить разницу элементов массива, что расположены между первым отрицательным та вторым положительным элементами

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
template <typename T>
inline  int MASS<T>::raznica( )
{
 
    int k = 0, d = 0, l1 = 0, l2 = 0 ;
    int razn = 0;
    for(int i = 0 ; i <N; i++)
    {
        if (arr[i] < 0)
        {
            k++;
            if( k == 1)
                l1 = i;
        }
 
        if (arr[i] > 0)
        {
            d++;
            if( d == 2 )
                l2 = i;
        }
    }
    for (int i = l1 + 1; i < l2; i++)
        razn = arr[i] - arr[i+1];
 
    return razn;
 
}
Добавлено через 2 часа 8 минут
Людиии хееелп плиз
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 23:11     Вычислить разницу элементов массива, что расположены между первым отрицательным та вторым положительным элементами
Посмотрите здесь:

C++ вычислить сумму элементов массива, расположенных между первым и вторым положительными элементами
разница элементов массива, расположенных между первым отрицательным и вторым положительным элементами C++
Вычислить сумму элементов массива между первым и вторым положительными элементами C++
В массиве вычислить: номер минимального элемента массива, сумму элементов между первым и вторым отрицательным элементами C++
C++ Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
las-uv
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 6
28.05.2013, 09:35     Вычислить разницу элементов массива, что расположены между первым отрицательным та вторым положительным элементами #2
У тебя находит разницу только между 2-ух элементов...
Там где ты находишь разницу нужно написать razn-=arr[i].
А потом, в конце добавить эл-т: razn+=arr[l1+1].
lulu13
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 17
29.05.2013, 21:57  [ТС]     Вычислить разницу элементов массива, что расположены между первым отрицательным та вторым положительным элементами #3
А потом, в конце добавить эл-т: razn+=arr[l1+1].

Куда добавить,не могу понять?
eocron
Кактус
 Аватар для eocron
66 / 66 / 6
Регистрация: 23.05.2012
Сообщений: 343
29.05.2013, 22:19     Вычислить разницу элементов массива, что расположены между первым отрицательным та вторым положительным элементами #4
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
#include <iostream> 
 
template <class T>
T diff(T *mass,unsigned int N)//mass - массив, N - количество элементов
{
    T    razn  = 0;     //Разность всех зажатых элементов
    int  count = 0;     //Счетчик для второго положительного числа
    bool flag  = false; //Поднимаем флаг при отрицательном числе
    for(unsigned int i = 0 ; i <N; i++)
    {
        if(mass[i] < 0)
        {
            flag=true;
        }
 
        if (mass[i] > 0)
        {
            count++;
            if( count == 2 )
            {
                break;
            }
        }
        
        if(flag){razn-=mass[i];}
    }
    return razn;
}
lulu13
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 17
29.05.2013, 22:58  [ТС]     Вычислить разницу элементов массива, что расположены между первым отрицательным та вторым положительным элементами #5
Вставила код в свою ф-цию,считает не правильно
Ввожу массив 5ти элементов:
-1
-2
3
4
5

разница = 0

Добавлено через 22 минуты
Цитата Сообщение от eocron Посмотреть сообщение
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
#include <iostream> 
 
template <class T>
T diff(T *mass,unsigned int N)//mass - массив, N - количество элементов
{
    T    razn  = 0;     //Разность всех зажатых элементов
    int  count = 0;     //Счетчик для второго положительного числа
    bool flag  = false; //Поднимаем флаг при отрицательном числе
    for(unsigned int i = 0 ; i <N; i++)
    {
        if(mass[i] < 0)
        {
            flag=true;
        }
 
        if (mass[i] > 0)
        {
            count++;
            if( count == 2 )
            {
                break;
            }
        }
        
        if(flag){razn-=mass[i];}
    }
    return razn;
}

http://zalil.ru/34541875

вот моя лаба,посмотри плиз
eocron
Кактус
 Аватар для eocron
66 / 66 / 6
Регистрация: 23.05.2012
Сообщений: 343
29.05.2013, 22:59     Вычислить разницу элементов массива, что расположены между первым отрицательным та вторым положительным элементами #6
Пардон, ошибка:
C++
1
2
3
4
5
6
7
8
9
10
11
12
    ...
    for(unsigned int i = 0 ; i <N; i++)
    {
        if(!flag && mass[i] < 0)
        {
            flag=true;
            continue;
        }
        ...
    }
    ...
}
Теперь должно работать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2013, 23:38     Вычислить разницу элементов массива, что расположены между первым отрицательным та вторым положительным элементами
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
lulu13
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 17
29.05.2013, 23:38  [ТС]     Вычислить разницу элементов массива, что расположены между первым отрицательным та вторым положительным элементами #7
C++ (Qt)
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
inline  int MASS<T>::raznica()//mass - массив, N - количество элементов
{
    T    razn  = 0;     //Разность всех зажатых элементов
    int  count = 0;     //Счетчик для второго положительного числа
    bool flag  = false; //Поднимаем флаг при отрицательном числе
    for(unsigned int i = 0 ; i <N; i++)
    {
        if(!flag && mass[i] < 0))
        {
            flag=true;
            continue;
        }
 
        if (arr[i] > 0)
        {
            count++;
            if( count == 2 )
            {
                break;
            }
        }
        
        if(flag){razn-=arr[i];}
    }
    return razn;
}
Вот так сделала.
Теперь при тех же значениях пишет Разница = -3 =(((
Хотя правильный ответ -5

Добавлено через 35 минут
eocron, хееелп плиз(((завтра сдавать
Yandex
Объявления
29.05.2013, 23:38     Вычислить разницу элементов массива, что расположены между первым отрицательным та вторым положительным элементами
Ответ Создать тему
Опции темы

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