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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 358
#1

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

20.11.2012, 15:47. Просмотров 386. Ответов 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
//вывод массива в строчке, элементы через пробелы//
 
    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 секунд
и если два эдемента положительных находятся рядом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2012, 15:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как определить, что все элементы массива отрицательные? (C++):

Как перенести все отрицательные элементы из одного массива в другой. - C++
Здравствуйте, уважаемые форумчане. Большая просьба помочь: Как из одномерного массива целых чисел все отрицательные элементы перенести в...

Все отрицательные элементы массива уменьшить в двое, а все нулевые элементы заменить на... - C++
Задан массив М, состоящий из К строк и N столбцов. Все отрицательные элементы уменьшить в двое, а все нулевые элементы заменить на – 0.1.

Заменить все отрицательные элементы массива их квадратами и отсортировать все элементы по возрастанию - C++
Помогите пожалуйста заменить все отрицательные элементы массива их квадратами и отсортировать все элемнты по возрастанию. Программу я...

Массив: Сформировать третий массив, в который включить все отрицательные элементы массива А и все максимальные элементы массива В. - C++
Даны массивы целых чисел A и B. Сформировать третий массив, в который включить все отрицательные элементы массива А и все максимальные...

Отрицательные элементы массива заменить на их абсолютную величину и все нечётные элементы на корень - C++
Дан массив целых чисел. Каждый отрицательный элемент заменить на его абсолютную величину. Все элементы с нечётными номерами заменить на их...

В одномерном массиве все отрицательные элементы заменить нулями и упорядочить элементы массива по убыванию - C++
В одновимірному масиві всі від’ємні елементи замінити нулями і впорядкувати елементи масиву за спаданням.

7
David Sylva
1287 / 949 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
20.11.2012, 16:51 #2
Какое задание?
0
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 358
20.11.2012, 16:53  [ТС] #3
то что оложительные элементы массива находятся рядом, то сумма не существует и если все элементы отрицательные то сумма не существует нужно через if else
0
David Sylva
1287 / 949 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
20.11.2012, 16:59 #4
То есть так. Есть исходный массив, если все элементы отрицательные суммы нет, если есть положительные элементы, найти минимальный положительный и максимальный положительный, и получит сумму между ними, если они расположены рядом значит суммы нет. Правильно я понял?
0
flatra
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 358
20.11.2012, 17:39  [ТС] #5
да правильно

Добавлено через 24 минуты
помогите
0
David Sylva
1287 / 949 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
20.11.2012, 18:14 #6
flatra если никто не поможет тебе в ближайшие время, чуть по позже набросаю как можно сделать.
0
Issues
430 / 365 / 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;
}
0
David Sylva
1287 / 949 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
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; 
            }
          }
}
0
20.11.2012, 18:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2012, 18:56
Привет! Вот еще темы с ответами:

Все отрицательные элементы массива перенести в начало, а все остальные - в конец - C++
помогите пожалуйста))) преобразовать массив по следующему правилу (воспользовавшись массивом у как вспомогательным):все отрицательные...

Данный массив A (n). Все положительные его элементы поместить в начало массива B (n), а все отрицательные - в начало массива C (n). Подсчитать количес - C++
Данный массив A (n). Все положительные его элементы поместить в начало массива B (n), а все отрицательные - в начало массива C (n)....

Для каждого из массивов все отрицательные элементы переместить в начало массива, а все положительные — в конец - C++
Составить программу, которая превращает массивы А и В следующим образом: для каждого из них все отрицательные элементы одномерного...

Удалить все отрицательные элементы массива - C++
У меня есть динамический масив... Как удалить все отрицательние елементи? if(mass&lt;0) а дальше?


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru