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

Как определить, что все элементы массива отрицательные? - C++

Восстановить пароль Регистрация
 
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 343
20.11.2012, 15:47     Как определить, что все элементы массива отрицательные? #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
//вывод массива в строчке, элементы через пробелы//
 
    min = arr[0];
 
    for (i = 0; i < n; i++)
        if (arr[i] < min)
            min = arr[i];
 
     for (i1=0; i1<n; i1++)
  if (arr[i1]>0)
    break;
for (i2=n-1; i2>=0; i2--)
  if (arr[i2]>0)
    break;
 
    for (int i = i1; i <= i2; i++)
        sum += arr[i];
    
    cout << "минимальный элемент массива:" << min << endl; // вывод минимального значения
  
    
    
    cout << "Сумма элементов массива, расположенных между первым и последним элементом положительными элементами" << sum << endl;
    cout << "\nвсе элементы массива отрицательные  , то сумма не существует :";
    
    
    cout << "\n положительные элементы массива  находятся рядом, то сумма не существует:";
Добавлено через 27 секунд
и если два эдемента положительных находятся рядом
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
20.11.2012, 16:51     Как определить, что все элементы массива отрицательные? #2
Какое задание?
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 343
20.11.2012, 16:53  [ТС]     Как определить, что все элементы массива отрицательные? #3
то что оложительные элементы массива находятся рядом, то сумма не существует и если все элементы отрицательные то сумма не существует нужно через if else
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
20.11.2012, 16:59     Как определить, что все элементы массива отрицательные? #4
То есть так. Есть исходный массив, если все элементы отрицательные суммы нет, если есть положительные элементы, найти минимальный положительный и максимальный положительный, и получит сумму между ними, если они расположены рядом значит суммы нет. Правильно я понял?
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 343
20.11.2012, 17:39  [ТС]     Как определить, что все элементы массива отрицательные? #5
да правильно

Добавлено через 24 минуты
помогите
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
20.11.2012, 18:14     Как определить, что все элементы массива отрицательные? #6
flatra если никто не поможет тебе в ближайшие время, чуть по позже набросаю как можно сделать.
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
20.11.2012, 18:56     Как определить, что все элементы массива отрицательные? #7
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>
using namespace std;
 
int main()
{
    const int sz = 10;
    int arr[10];
 
    int cnt = 0;
    while (arr[cnt] < 0)
        cnt++;
 
    int max, min;
    int sum = 0;
    max = min = *arr;
 
    if (cnt < sz)
    {
        for (int i = 0; i < sz; i++)
        {
            if (arr[i] > 0)
            {
                if (arr[i] < min)
                    min = arr[i];
                if (arr[i] > max)
                    max = arr[i];
            }
            else
                continue;
        }
 
        for (int j = 0; j < sz; j++)
        {
            if (arr[j] == min)
                for (int i = j; arr[i] != max; i++)
                    sum += arr[i];
        }
    }
 
    system("PAUSE");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2012, 18:56     Как определить, что все элементы массива отрицательные?
Еще ссылки по теме:

Заменить все отрицательные элементы массива C++
Отрицательные элементы массива заменить на их абсолютную величину и все нечётные элементы на корень C++
C++ В одномерном массиве все отрицательные элементы заменить нулями и упорядочить элементы массива по убыванию

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

Или воспользуйтесь поиском по форуму:
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
20.11.2012, 18:56     Как определить, что все элементы массива отрицательные? #8
типа такого
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <cmath>
 
int main() 
{ 
    const int size = 8; 
    int array[size] = { 45, 12, 6, 5, 1, -1, 6, -7 }; 
    int count = 0; 
    int i, n, min, max, sum = 0;  
    int index_min, index_max;
    
    for ( i = 0; i < size; ++i) // ли все лементы отрицательные
        if(array[i] < 0) 
            count++; 
 
    if(count == size) 
        std::cout << "No sum " << std::endl; 
    else 
    {   
        n = 0; 
        while(array[n] < 0) // находим ближайший к началу положительный элемент
            n++;  
        min = array[n];
        index_min = n;
 
        for ( i = n+1; i < size; ++i) // находим минимальный положительный
            if(array[i] > 0 && array[i] < min) 
            {
                min = array[i]; 
                 index_min = i; 
            }  
 
            max = array[0];
            index_max = 0;
 
            for ( i = 1; i < size; ++i) // находим максимальный положительный
                if(array[i] > max)  
                {
                    max = array[i];
                    index_max = i; 
                } 
              
            if(index_max - index_min == -1 || index_max - index_min == 1)// если индексы рядом
                std::cout << "NO sum " << std::endl;  
            else 
            { 
                if(index_min < index_max) // какой из индексов меньше, с такого и начинаем цикл
                    for ( i = index_min + 1; i < index_max; ++i) 
                        sum += array[i]; 
                else 
                    for ( i = index_max + 1; i < index_min; ++i) 
                        sum += array[i]; 
                std::cout << "Sum is " << sum << std::endl; 
            }
          }
}
Yandex
Объявления
20.11.2012, 18:56     Как определить, что все элементы массива отрицательные?
Ответ Создать тему
Опции темы

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