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

Найти количество элементов массива, равных максимальному - C++

Восстановить пароль Регистрация
 
defeltz
0 / 0 / 0
Регистрация: 01.07.2012
Сообщений: 13
02.07.2012, 14:53     Найти количество элементов массива, равных максимальному #1
Дан целочисленный массив из 30 элементов. Найти количество элементов, равных максимальному.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
02.07.2012, 14:58     Найти количество элементов массива, равных максимальному #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <vector>
#include <algorithm>
#include <iostream>
 
int main()
{
    constexpr unsigned short int size = 30;
    std::vector<int> values(size);
    
    std::cout << "Enter an array:" << std::endl;
    for (int& value : values)
        std::cin >> value; 
    
    unsigned short int count = std::count(values.begin(), values.end(), *std::max_element(values.begin(), values.end()));
    std::cout << "Answer: " << count << std::endl;
    
    return EXIT_SUCCESS;
}
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
02.07.2012, 15:00     Найти количество элементов массива, равных максимальному #3
щас же еще тему создаст, "сделайте попроще .. " )
defeltz
0 / 0 / 0
Регистрация: 01.07.2012
Сообщений: 13
02.07.2012, 15:03  [ТС]     Найти количество элементов массива, равных максимальному #4
да не)
просто программа не работает надо запилить так чтоб когда в с++ вставлякешь она робила а так нифига
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
02.07.2012, 15:07     Найти количество элементов массива, равных максимальному #5
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
#include <vector>
#include <algorithm>
#include <iostream>
#include <iterator>
 
template <typename T>
class enter_element : public std::unary_function<void, T>
{
public:
    T operator()() const
    {
        T value;
        std::cin >> value;
        return value;
    }
};
 
int main()
{
    const unsigned short int size = 30;
    std::vector<int> values;
    
    std::cout << "Enter an array:" << std::endl;
    std::generate_n(std::back_inserter(values), size, enter_element<int>());
    
    unsigned short int count = std::count(values.begin(), values.end(), *std::max_element(values.begin(), values.end()));
    std::cout << "Answer: " << count << std::endl;
    
    return EXIT_SUCCESS;
}
второй вариант)
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
02.07.2012, 15:22     Найти количество элементов массива, равных максимальному #6
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
#include <iostream>
#include <conio.h>
#include <ctime>
#include <cstdlib>
using namespace std;
const int n=30;
int main()
{
    setlocale(0,"Rus");
    int mas[n];
    cout<<"Массив: "<<endl;
    srand((unsigned)time(NULL));
    for(int i=0;i<n;i++)
    {
        mas[i]=rand()%10;
        cout<<mas[i]<<" ";
    }
    int max=mas[0],count=0;
    for(int i=0;i<n;i++)
        if(mas[i]>max) max=mas[i];
    for(int i=0;i<n;i++)
        if(mas[i]==max) count++;
    cout<<endl<<"Количество: "<<count-1<<endl;
    getch();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2012, 17:59     Найти количество элементов массива, равных максимальному
Еще ссылки по теме:

C++ Одномерные массивы и указатели (найти количество элементов массива, равных 0, сумму элементов массива...)
C++ Связный список; удаление равных максимальному элементов
Подсчет числа элементов, равных максимальному C++

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

Или воспользуйтесь поиском по форуму:
Doctor_
 Аватар для Doctor_
232 / 232 / 69
Регистрация: 03.02.2011
Сообщений: 1,405
02.07.2012, 17:59     Найти количество элементов массива, равных максимальному #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
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <conio.h>
#define N 30
 
using namespace std;
 
int main() {
    srand(time(NULL));
    int vec[N], count = 0, i;
    for(i=0; i<N; i++) 
    vec[i] = rand()%5;
    for(i=0; i<N; i++)
    cout << vec[i] << " ";
    cout << endl;
    int max = vec[0];
    for(i=0; i<N; i++)
    if(vec[i] > max) 
    max = vec[i];
    for(i=0; i<N; i++)
    if(vec[i] == max)
    count++;
    cout << "Maximal element: " << max << ", repeats: " << count << " times" << endl;
    getche();
}
Функциями:
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
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <conio.h>
#define N 30
 
using namespace std;
 
void generate(int vector[], int const size);
void show(int vector[], int const size);
void max(int vector[], int const size);
 
int main() {
    
    int vec[N];
    generate(vec,N);
    show(vec,N);
    max(vec,N);
    getche();
}
 
void generate(int vector[], int const size) {
     srand(time(NULL));
     for(int i=0; i<N; i++) 
     vector[i] = rand()%5;
     }
     
void show(int vector[], int const size) {
     for(int i=0; i<N; i++)
     cout << vector[i] << " ";
     cout << endl;
     }
 
void max(int vector[], int const size) {
     int max = vector[0], count = 0;
     for(int i=0; i<N; i++)
     if(vector[i] > max) 
     max = vector[i];
     for(int i=0; i<N; i++)
     if(vector[i] == max)
     count++;
     cout << "Maximal element: " << max << ", repeats: " << count << " times" << endl;
     }
Классом:
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
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <conio.h>
#define N 30
 
using namespace std;
 
class Vector {
      int vec[N];
      public:
             Vector();
             void generate();
             void show();
             void max();
};
 
Vector :: Vector() {
       }
 
void Vector :: generate() {
     srand(time(NULL));
     for(int i=0; i<N; i++) 
     vec[i] = rand()%5;
     }
 
void Vector :: show() {
     for(int i=0; i<N; i++)
     cout << vec[i] << " ";
     cout << endl;
     }
 
void Vector :: max() {
     int max = vec[0], count = 0;
     for(int i=0; i<N; i++)
     if(vec[i] > max) 
     max = vec[i];
     for(int i=0; i<N; i++)
     if(vec[i] == max)
     count++;
     cout << "Maximal element: " << max << ", repeats: " << count << " times" << endl;
     }
 
int main() {
    Vector V1;
    V1.generate();
    V1.show();
    V1.max();
    getche();
}
Yandex
Объявления
02.07.2012, 17:59     Найти количество элементов массива, равных максимальному
Ответ Создать тему
Опции темы

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