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

В массиве М(45) найти максимальный среди отрицательных элементов и число нулевых элементов стоящих после него - C++

Восстановить пароль Регистрация
 
___Alex___
0 / 0 / 0
Регистрация: 26.12.2011
Сообщений: 41
10.04.2012, 18:30     В массиве М(45) найти максимальный среди отрицательных элементов и число нулевых элементов стоящих после него #1
В массиве М(45) найти максимальный среди отрицательных элементов и число нулевых элементов стоящих после него.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2012, 18:30     В массиве М(45) найти максимальный среди отрицательных элементов и число нулевых элементов стоящих после него
Посмотрите здесь:

Найти максимальный элемент среди отрицательных элементов массива C++
Найти максимальный элемент и его номер среди отрицательных элементов. C++
В целочисленном массиве найти максимальный элемент среди четных и среди нечетных элементов C++
Массивы: найти среди отрицательных элементов максимальный элемент и его индекс C++
C++ В массиве М(45) найти максимальный среди отрицательных элементов и число нулевых элементов стоящих после него
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
20.04.2012, 09:48     В массиве М(45) найти максимальный среди отрицательных элементов и число нулевых элементов стоящих после него #2
C++
1
2
3
4
    int min = 0; 
    for (int i = 0; i < 45; i++)
        if (abs(M[i]) < abs(M[min]))
            min = i;
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
20.04.2012, 10:01     В массиве М(45) найти максимальный среди отрицательных элементов и число нулевых элементов стоящих после него #3
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
#include <iostream>
 
int main()
{
    const int size = 10;
    int arr[size];
    
    for(int i = 0; i < size; ++i)
    {   
        std::cout << "Enter arr[" << i << "]: ";
        std::cin >> arr[i];
    }
    
    int i_max = -1;
    for(int i = 0; i < size; ++i)
    {
        if((arr[i] < 0) && (arr[i] > arr[i_max] || i_max == -1))
        {
            i_max = i;
        }
    }
    
    if(i_max == -1)
    {
        std::cout << "There are no negatives!";
        return 0;
    }
    
    std::cout << "Max of negatives = " << arr[i_max] << ".\n";
    
    int counter = 0;
    for(int i = i_max + 1; i < size; ++i)
    {
        if(arr[i] == 0)
            ++counter;
    }
    std::cout << "There are " << counter << " nulls after it.\n";
    
    return 0;
}
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
20.04.2012, 10:20     В массиве М(45) найти максимальный среди отрицательных элементов и число нулевых элементов стоящих после него #4
__Alex__, прошу извинить я как-то не врубился, что arr[i_max], при i_max == -1 дает большое
отрицательное число. Код из последнего поста Schizorb работает, сам проверял.

Добавлено через 8 минут
Это-же, еще можно делать так:

C++
1
2
3
4
    int max = -1; 
    for (int i = 0; i < 5; i++)
        if ((M[i] > M[max]) && (M[i] < 0))
            max = i;
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
20.04.2012, 10:43     В массиве М(45) найти максимальный среди отрицательных элементов и число нулевых элементов стоящих после него #5
Цитата Сообщение от zitxbit Посмотреть сообщение
Это-же, еще можно делать так:...
Если искомый элемент самым первым будет, то у меня он не находится при таком условии.

Наверное, в моём коде ещё следует поменять местами условия, чтобы к -1-ому элементу не обращаться, в нём по идее мусор...

C++
1
if((arr[i] < 0) && (i_max == -1 || arr[i] > arr[i_max]))
Yandex
Объявления
20.04.2012, 10:43     В массиве М(45) найти максимальный среди отрицательных элементов и число нулевых элементов стоящих после него
Ответ Создать тему
Опции темы

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