Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 10.05.2020
Сообщений: 29
1

Написать программу, которая находит в массиве максимальный повторяющийся элемент

16.05.2020, 16:49. Показов 6439. Ответов 5

Author24 — интернет-сервис помощи студентам
Написать программу, которая находит в массиве максимальный повторяющийся элемент или выводит число -1, если ни один элемент не повторяется.

Входные данные
Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 1000 .

Выходные данные
Программа должна вывести максимальный повторяющийся элемент в массиве или число -1, если ни один элемент не повторяется.

Примеры

входные данные
6
1 3 1 3 1 3

выходные данные
3


входные данные
6
1 2 3 4 5 6

выходные данные
-1
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2020, 16:49
Ответы с готовыми решениями:

Массивы двумерные. Написать программу, которая находит максимальный по абсолютной величине элемент и переставляет строки и столбцы
Дана матрица А(nxn). Написать программу, которая находит максимальный по абсолютной величине...

Написать программу, которая запрашивает размерность двумерного массива, заполняет его случайными числами от 5 до 15 и находит максимальный элемент в м
Написать программу, которая запрашивает размерность двумерного массива, заполняет его случайными...

Программа, которая находит в массиве максимальный повторяющийся элемент
Напишите программу, которая находит в массиве максимальный повторяющийся элемент или выводит число...

Написать программу, которая находит третий по величине максимальный элемент в массиве
Написать программу, которая находит третий по величине максимальный элемент в массиве. Помогите...

5
5 / 2 / 3
Регистрация: 11.05.2020
Сообщений: 16
16.05.2020, 22:02 2
Andruxa007,
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
 
using namespace std;
 
void input(int N[])
{
    string str;
    cin.get();
    getline(cin, str);
 
    string::size_type sz;
 
    int index = 0;
    while(str.length())
    {
        int i_dec = stoi(str, &sz);
        N[index] = i_dec;
        str = str.substr(sz);
        index++;
    }
}
 
int main()
{
    int size;
    cout << "Size aaray: ";
    cin >> size;
    int N[size];
//-------------------Заполняем массив чисел и проверяем условие---------------------
res:
    input(N);
 
    for (int i = 0; i < size; i++)
    {
        if (N[i] <= 0 || N[i] > 1000) 
        {
            cout << "No 0 < N <= 1000! Restart input.";
            system("pause");
            system("cls");
            goto res;
        }
    }
//-------------------Создаём массив уникальных элементов----------------------------
    vector<int> arr(size);
    int index = 0;
    arr[0] = N[0];
 
    cout << "\n" << "\n";
    for (int i = 1; i < size; i++)
    {
        int count = 0;
        for (int g = 0; g < size; g++)
        {
            if (N[i] == arr[g]) count++;
            if (g == size - 1 && count > 0) break;
            else if (g == size - 1 && count == 0)
            {
                index++;
                arr[index] = N[i];
            }
        }
    }
    arr.resize(index+1); // изменяем размер массива уник. элементов до их количества
 
//-------------------Поиск максимального повторяющегося элемента--------------------
    vector<int> repeat(index+1);
 
    for (int i = 0; i < size; i++)
    {
        for (int g = 0; g < index+1; g++)
        {
            if (arr[g] == N[i])
            {
                repeat[g]++;
            }
        }
    }
 
    cout << "\n" << arr[distance(repeat.begin(), max_element(repeat.begin(), repeat.end()))] << "\n";
    
    system("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 10.05.2020
Сообщений: 29
16.05.2020, 22:08  [ТС] 3
код работает не правильно
0
5 / 2 / 3
Регистрация: 11.05.2020
Сообщений: 16
16.05.2020, 22:15 4
Лучший ответ Сообщение было отмечено Andruxa007 как решение

Решение

Andruxa007, да, а что именно?

Добавлено через 5 минут
Andruxa007, я забыл добавить проверку на отсутствие повторов:
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
 
using namespace std;
 
void input(int N[])
{
    string str;
    cin.get();
    getline(cin, str);
 
    string::size_type sz;
 
    int index = 0;
    while(str.length())
    {
        int i_dec = stoi(str, &sz);
        N[index] = i_dec;
        str = str.substr(sz);
        index++;
    }
}
 
int main()
{
    int size;
    cout << "Size aaray: ";
    cin >> size;
    int N[size];
//-------------------Заполняем массив чисел и проверяем условие---------------------
res:
    input(N);
 
    for (int i = 0; i < size; i++)
    {
        if (N[i] <= 0 || N[i] > 1000) 
        {
            cout << "No 0 < N <= 1000! Restart input.";
            system("pause");
            system("cls");
            goto res;
        }
    }
//-------------------Создаём массив уникальных элементов----------------------------
    vector<int> arr(size);
    int index = 0;
    arr[0] = N[0];
 
    cout << "\n" << "\n";
    for (int i = 1; i < size; i++)
    {
        int count = 0;
        for (int g = 0; g < size; g++)
        {
            if (N[i] == arr[g]) count++;
            if (g == size - 1 && count > 0) break;
            else if (g == size - 1 && count == 0)
            {
                index++;
                arr[index] = N[i];
            }
        }
    }
    arr.resize(index+1); // изменяем размер массива уник. элементов до их количества
 
//-------------------Поиск максимального повторяющегося элемента--------------------
    vector<int> repeat(index+1);
 
    for (int i = 0; i < size; i++)
    {
        for (int g = 0; g < index+1; g++)
        {
            if (arr[g] == N[i])
            {
                repeat[g]++;
            }
        }
    }
 
    int count = 0;
    for (int i = 0; i < index+1; i++)
    {
        if (repeat[i] == 1) count++;
    }
 
    if (count != index+1) cout << "\n" << arr[distance(repeat.begin(), max_element(repeat.begin(), repeat.end()))] << "\n";
    else cout << "\n" << "-1" << "\n";
    system("pause");
    return 0;
}
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
17.05.2020, 00:25 5
Лучший ответ Сообщение было отмечено Andruxa007 как решение

Решение

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
#include <iostream>
using namespace std;
 
int main()
{
    int N, k=0;
    cin >> N;
 
    double *a = new double[N];
    
    for (int i = 0; i < N; i++)
        cin >> a[i];
        
    for (int i=0; i<N-1; i++)    
    for (int j=0; j<N-i-1; j++)        
      if (a[j] < a[j+1]) 
      swap(a[j], a[j+1]);    
 
    for (int i = 0; i < N-1; i++)
        if(a[i]==a[i+1]) {k=1;cout << a[i] << "\n";break;}
        
    if(k==0) cout << -1 << "\n";        
 
    delete[]a;
 
return 0;
}
2
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
17.05.2020, 09:31 6
Лучший ответ Сообщение было отмечено Andruxa007 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
int main ()
{
    int M[1001]={}, N, m;
    cin >> N;
    
    for(int i=0; i<N; i++)
    {
        cin >> m;
        M[m]++;
    }
 
    for(int i=1000; i>0; i--)
        if (M[i] > 1)
        {
            cout << i;
            return 0;
        }
    
        cout << -1;
return 0;
}
0
17.05.2020, 09:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.05.2020, 09:31
Помогаю со студенческими работами здесь

Написать программу, которая находит максимальный элемент массива
написать программу которая находит максимальный элемент массива, массив задан случайным образом из...

Написать программу, которая находит максимальный по абсолютной величине элемент
Люди умные, у меня тут еще есть одна задачка в которой я не совсем все понимаю цель:формирование...

Написать программу которая находит максимальный элемент среди чётных элементов вектора
Написать программу которая находит максимальный элемент среди чётных элементов вектора b(n)

Дан массив на 23 элемента. Написать программу, которая находит максимальный отрицательный элемент массива, который следует за максимальным положительн
Здравствуйте!!Помогите пжл решить задачу. Дан массив на 23 элемента. Написать программу, которая...

Составить программу которая находит максимальный элемент
Дана квадратная матрица А порядку n. Составить программу, которая находит максимальный элемент и ...

Написать функцию, которая находит минимальное значение в массиве Y и соответствующий этому значению элемент в массиве X
Представьте себе, что проводятся опыты, результаты которых заносятся в два массива - X, Y. Написать...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru