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

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

Войти
Регистрация
Восстановить пароль
 
 
wolf0022
2 / 2 / 0
Регистрация: 17.12.2013
Сообщений: 148
#1

Определить сколько чисел принимают максимальное значение - C++

05.09.2014, 19:09. Просмотров 438. Ответов 15
Метки нет (Все метки)

Задача 1. Дано 20 действительных чисел. Определить сколько из них принимают максимальное значение.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2014, 19:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить сколько чисел принимают максимальное значение (C++):

Массив: Определить, сколько чисел в последовательности принимают максимальное значение? - C++
1. Дано 20 действительных чисел. Определить сколько из них принимают максимальное значение.

Определить, сколько членов последовательности принимают значение, большее заданного числа - C++
Искал на форму, данная задача решалась довольно часто, но везде один и тот же косяк, она не правильно работает если начать воодить...

Задана последовательность чисел длиной n. Определить минимальное и максимальное значение этой последовательности ... - C++
Задана последовательность чисел длиной n. Определить минимальное и максимальное значение этой последовательности ... В паскале вроде...

Определить значение Z=max(a,2b)*max(2a-b,b), где max(x,y)-максимальное из чисел x,y - C++
Помогите решить задачу: Определить значение Z=max(a,2b)*max(2a-b,b), где max(x,y)-максимальное из чисел x,y. Задачу решить двумя...

Массив: определить, сколько раз повторяется максимальное число в последоновательности - C++
Нужно определить сколько раз повторяется максимальное число в последоновательности пример! Входные данные 7 1 4 2 5 2 5 3 ...

Дана последовательность чисел. Сколько раз в ней встречается максимальное число? - C++
Given a sequence of numbers. Find out how many times the maximum element of the sequence meets in the sequence. Input data. First...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6355 / 5919 / 1919
Регистрация: 18.12.2011
Сообщений: 15,215
Завершенные тесты: 1
05.09.2014, 19:19 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Алгоритм:
1. Циклом проходите по массиву и находите максимум.
2. Повторным циклом сравниваете с максимумом и считаете количество совпадений.
Bahyt
0 / 0 / 0
Регистрация: 27.04.2016
Сообщений: 13
04.10.2016, 10:03 #3
Ну хоть половину кода написал. А то простенькая задача же
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 875
Завершенные тесты: 2
04.10.2016, 10:07 #4
Цитата Сообщение от Bahyt Посмотреть сообщение
А то простенькая задача же
Угу. Очень прошу. Дайте хотябы подсказку. как реш. эту задачу в С++. В консольном режиме. Я шарю только делфи
Bahyt
0 / 0 / 0
Регистрация: 27.04.2016
Сообщений: 13
08.10.2016, 14:56 #5
????
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 875
Завершенные тесты: 2
08.10.2016, 15:21 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
unsigned getMaxesAmount(double *A, const unsigned n) {
    double max = *A;
    for (unsigned i = 1; i < n; i++)
        max = A[i]>max?A[i]:max;
    unsigned result = 0;
    for (unsigned i = 0; i < n; i++)
        result += A[i]==max;
    return result;
}
 
int main() {
    double A[]={1,2,3,2,3,1,0,2,3,1,2,3,2,3,1,0,2,3,1,2};
    std::cout << getMaxesAmount(A,20);
}
Croessmah
Модератор
Эксперт CЭксперт С++
13132 / 7395 / 828
Регистрация: 27.09.2012
Сообщений: 18,222
Записей в блоге: 3
Завершенные тесты: 1
08.10.2016, 16:46 #7
Цитата Сообщение от Bahyt Посмотреть сообщение
Ну хоть половину кода написал. А то простенькая задача же
Цитата Сообщение от Bahyt Посмотреть сообщение
????
почему тогда четыре дня назад Вы сами эту задачу не сделали?
Массив: Определить, сколько чисел в последовательности принимают максимальное значение?

SpBerkut, zss, тот же вопрос и Вам:
Цитата Сообщение от Croessmah Посмотреть сообщение
а зачем два цикла?
GbaLog-
Любитель чаепитий
2692 / 1225 / 297
Регистрация: 24.08.2014
Сообщений: 4,409
Записей в блоге: 1
Завершенные тесты: 2
08.10.2016, 17:00 #8
Цитата Сообщение от Croessmah Посмотреть сообщение
а зачем два цикла?
Так предлагаете?

Кликните здесь для просмотра всего текста
Предупреждаю ТСа, это только в развлекательных целях.

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
/////////////////////////////////////////////////////////////////////
// Задача 1. Дано 20 действительных чисел. 
// Определить сколько из них принимают максимальное значение.
/////////////////////////////////////////////////////////////////////
#include <iostream>
/////////////////////////////////////////////////////////////////////
int main()
{
    double arr[10]
    { 10.d, 12.d, 1.d, 3.d, 15.d, 2.d, 15.d, 15.d, 5.d, 13.d };
    
    bool rev = false;
    int max{};
    int max_count{};
    
    for( int i{1}; (rev ? i > 0 : i < 10); (rev ? --i : ++i) )
    {
        if( i == 9 )
        {
            rev = true;
        }
        
        if( arr[max] < arr[i] )
        {
            max = i; 
        }
        
        if( rev && arr[max] == arr[i] )
        {
            ++max_count;
        }
    }
    std::cout << max_count << std::endl;
}
Croessmah
Модератор
Эксперт CЭксперт С++
13132 / 7395 / 828
Регистрация: 27.09.2012
Сообщений: 18,222
Записей в блоге: 3
Завершенные тесты: 1
08.10.2016, 17:14 #9
Цитата Сообщение от GbaLog- Посмотреть сообщение
Так предлагаете?
Как-то:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
unsigned getMaxesAmount(double *A, const unsigned n) {
    double max = *A;
    unsigned result = 1;
    for (unsigned i = 1; i < n; i++) {
        if (lessDouble(max, A[i])) {//lessDouble? WTF? o_O :)
           max = A[i];
           result = 1;
        } else {
           result += equalDouble(max, A[i]);//equalDouble? WTF? o_O :)   
        }     
    }        
    return result;
}
Dsasdf
Заблокирован
08.10.2016, 20:19 #10
C++
1
2
3
4
5
6
7
8
9
10
11
double A[] = {1, 2, 3, 2, 3, 1, 0, 2, 3, 1, 2, 3, 2, 3, 1, 0, 2, 3, 1, 2};
 
    int count = 0;
    for (int i = 0, max = 0; i < 20; i++)
        if (A[i] > max) {
            max = A[i];
            count = 1;
        } else
            if (A[i] == max)count++;
    
cout << count;
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 875
Завершенные тесты: 2
09.10.2016, 09:10 #11
Ну, у меня получилась калька с кода Croessmah. А ведь я честно не подглядывал.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
unsigned getMaxesAmount(double *A, const unsigned n) {
    double max = *A;
    unsigned result = 1;
    for (unsigned i = 1; i < n; i++) {
        if (A[i]>max) {
            result = 1;
            max=A[i];
        } else {
            result += A[i]==max; // Вот этот момент, однако, спорный.
            //Официальная наука не приветствует проверку вещественных чисел на строгое равенство.
        }
    }
    return result;
}
Dsasdf, Ваш код не будет работать, если массив будет целиком состоять из отрицательных значений.
Dsasdf
Заблокирован
09.10.2016, 09:20 #12
Цитата Сообщение от SpBerkut Посмотреть сообщение
Dsasdf, Ваш код не будет работать, если массив будет целиком состоять из отрицательных значений.
Вообще-то не хорошо сдирать мой вариант решения - подмазывать и выкладывать его своим. Удачи.
C++
1
2
3
4
5
6
7
8
9
10
11
 double A[] = {-3, -2, -1, -1, -3, -1};
 
    int count = 1;
    for (int i = 1, max = A[0]; i < 6; i++)
        if (A[i] > max) {
            max = A[i];
            count = 1;
        } else
            if (A[i] == max)count++;
 
    cout << count;
Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от SpBerkut Посмотреть сообщение
Вот этот момент, однако, спорный.
* * * * * * //Официальная наука не приветствует проверку вещественных чисел на строгое равенство.
Полный бред.

SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 875
Завершенные тесты: 2
09.10.2016, 09:52 #13
Цитата Сообщение от Dsasdf Посмотреть сообщение
Вообще-то не хорошо сдирать мой вариант решения - подмазывать и выкладывать его своим.
У Вас мания величия. Croessmah и подход вычисления через 1 цикл обозначил, и код раньше выложил. И уж чья бы корова тогда мычала.
Цитата Сообщение от Dsasdf Посмотреть сообщение
Полный бред.
А давайте дуэль?!
C++
1
2
3
4
5
6
7
8
9
#include <iostream> 
int main() {
    float a = 0.2;                      // объявили переменную-секунданта и присвоили ей значение 0.2
    if (a == 0.2) {                     // проверяем секунданта на строгое равенство с тем же 0.2
        std::cout << "SpBerkut дурак."; // если равно, то я, так уж и быть, дурак
    } else {                            // а иначе
        std::cout << "Dsasdf дурак.";   // уж извините, Вы
    }
}
Цитата Сообщение от Dsasdf Посмотреть сообщение
Удачи.
Вам тоже не хворать.
Croessmah
Модератор
Эксперт CЭксперт С++
13132 / 7395 / 828
Регистрация: 27.09.2012
Сообщений: 18,222
Записей в блоге: 3
Завершенные тесты: 1
09.10.2016, 09:58 #14
Цитата Сообщение от Dsasdf Посмотреть сообщение
C++
1
int i = 1, max = A[0]
Тоже не будет работать.
Массив то из double'ов, а max будет int'ом.
Цитата Сообщение от SpBerkut Посмотреть сообщение
У Вас мания величия.
Не обращайте внимания. Ваши коды не имеют ничего общего.
Эт Вы у меня код украли. Шутка, конечно.
SpBerkut
09.10.2016, 10:06     Определить сколько чисел принимают максимальное значение
  #15

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
Эт Вы у меня код украли.
Я ж говорю — калька получилась.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2016, 10:06
Привет! Вот еще темы с ответами:

Определить сколько чисел было введено, и сколько среди них стречалось 1 - C++
С клавиатуры вводятся числа до тех пор пока их сумма не превысит 100. Определить сколько чисел было введено, и сколько среди них стречалось...

Определить, сколько среди чисел четных и сколько нечетных - C++
2.Вводится последовательность целых чисел, 0 – конец последовательности. Сколько среди них четных чисел и сколько нечетных.

Дана последовательность чисел. Выяснить, сколько раз в ней встречается максимальное число - C++
#include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include &lt;stddef.h&gt; // ------------ size_t index_of_max(int* a,...

Дана последовательность чисел. Выяснить , сколько раз в ней встречается максимальное число. - C++
помогите решить задачу для зачета,а то я совсем ничего не понимаю(((( Дана последовательность чисел. Выяснить , сколько раз в ней...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.10.2016, 10:06
Ответ Создать тему
Опции темы

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