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

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

Восстановить пароль Регистрация
 
enota
0 / 0 / 0
Регистрация: 03.03.2012
Сообщений: 36
01.05.2012, 21:31     Дана последовательность чисел. Выяснить, сколько раз в ней встречается максимальное число #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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <stddef.h>
 
// ------------
size_t index_of_max(int* a, size_t n)
{
    int max_idx = 0;
 
    for(size_t i = 1; i < n; ++i)
        if(a[i] > a[max_idx]) max_idx = i;
 
    return max_idx;
}
 
// ------------
size_t count_val(int* a, size_t n, int val)
{
    size_t c = 0;
 
    for(size_t i = 0; i < n; ++i)
        if(a[i] == val) ++c;
 
    return c;
}
 
// ------------
int main()
{
    const size_t n = 10;
    int a[n];
 
    srand(time(NULL));
    for(size_t i = 0; i < n; ++i)
    {
        a[i] = rand() % 20;
        
    }
 
    cout << "\n";
 
    size_t max_idx = index_of_max(a, n);
    size_t max_cnt = count_val(a + max_idx, n - max_idx, a
 
[max_idx]);
 
    cout << max_cnt << "\n";
 
    return 0;
}
пишет неправильный результат когда не один максимум
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2012, 21:31     Дана последовательность чисел. Выяснить, сколько раз в ней встречается максимальное число
Посмотрите здесь:

C++ Дана последовательность чисел. Выяснить , сколько раз в ней встречается максимальное число.
C++ имеется последовательность чисел содержащая n элементов, определить сколько раз в ней меняется знак
C++ Дана последовательность целых чисел a1, a2, ..., an. Выяснить, какое число встречается раньше - положительное или отрицательное.
Дана последовательность чисел. Выяснить , сколько раз в ней встречается максимальное число. C++
дана последовательность целых чисел а1 а2 выяснить какое число встречается чаще положительное или отрицательное в с++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
amfisat
 Аватар для amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 235
01.05.2012, 22:01     Дана последовательность чисел. Выяснить, сколько раз в ней встречается максимальное число #2
Передавай по ссылке кол-во максимумов:
C++
1
size_t count_val(int* a, size_t n, int val, size_t& c)
В main:
C++
1
size_t c = 0;
softmob
1248 / 698 / 155
Регистрация: 20.02.2010
Сообщений: 1,035
01.05.2012, 22:14     Дана последовательность чисел. Выяснить, сколько раз в ней встречается максимальное число #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
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <stddef.h>
 
// ------------
size_t index_of_max(int* a, size_t n)
{
    int max_idx = 0;
 
    for(size_t i = 1; i < n; ++i)
        if(a[i] > a[max_idx])
            max_idx = i;
 
    return max_idx;
}
 
// ------------
size_t count_val(int* a, size_t n, int val)
{
    size_t c = 0;
 
    for(size_t i = 0; i < n; ++i)
        if(a[i] == val)
            ++c;
 
    return c;
}
 
// ------------
int main(void)
{
    const size_t n = 10;
    int a[n];
 
    srand(unsigned(time(NULL)));
    for(size_t i = 0; i < n; ++i)
    {
        a[i] = rand() % 20;  
        std::cout << a[i] << ' ';
    }
 
    std::cout << "\n";
 
    size_t max_idx = index_of_max(a, n);
    size_t max_cnt = count_val(a, n, a[max_idx]);
    std::cout << max_cnt << "\n"; 
    return 0;
}
или
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <ctime>
using namespace std;
 
int main(void)
{
    srand(unsigned(time(NULL)));     
    vector<int> v(10);
    generate(v.begin(), v.end(), []{return rand() % 20;});
    copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
    cout << endl << count(v.begin(), v.end(), *max_element(v.begin(), v.end()));
    return 0;
}
enota
0 / 0 / 0
Регистрация: 03.03.2012
Сообщений: 36
06.05.2012, 18:50  [ТС]     Дана последовательность чисел. Выяснить, сколько раз в ней встречается максимальное число #4
N не более 1 миллиона? поэтому как можно без ограничений

Добавлено через 33 минуты
кто может помочь, программа выводит неверный результат
Yandex
Объявления
06.05.2012, 18:50     Дана последовательность чисел. Выяснить, сколько раз в ней встречается максимальное число
Ответ Создать тему
Опции темы

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