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

Не создавая дополнительные массивы, определить какой из элементов потовторяется в последовательсности А1,А2,...Аn., наибольшее число раз - C++

Восстановить пароль Регистрация
 
AvengerC
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 18
06.04.2013, 20:48     Не создавая дополнительные массивы, определить какой из элементов потовторяется в последовательсности А1,А2,...Аn., наибольшее число раз #1
Напишите программу,в которой создается одномерный массив натуральных чисел А1,А2......Аn(n=10). Не создавая дополнительные массивы, определить какой из элементов потовторяется в последовательсности А1,А2,...Аn., наибольшее число раз, и найти его порядковый номер, ближайший к началу последовательности.

Не могу понять задачу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2013, 20:48     Не создавая дополнительные массивы, определить какой из элементов потовторяется в последовательсности А1,А2,...Аn., наибольшее число раз
Посмотрите здесь:

в заданном тексте определить слово, в котором заданный символ встретится наибольшее число раз C++
C++ В заданном тексте определить слово, в котором заданный символ встретится наибольшее число раз.
C++ Дан массив из n элементов. Определить, сколько раз встречается число 5 среди элементов массива.
C++ Определить, какой из элементов повторяется в массиве наибольшее число раз
C++ Определить наибольшее число среди нечетных элементов последовательности
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
06.04.2013, 21:06     Не создавая дополнительные массивы, определить какой из элементов потовторяется в последовательсности А1,А2,...Аn., наибольшее число раз #2
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
#include <algorithm>
#include <iostream>
#include <iterator>
#include <random>
#include <ctime>
#include <array>
 
int main()
{
    auto randomGenerator = std::bind(std::uniform_int_distribution <> (0, 5),
                                     std::mt19937 (time(nullptr)));
    const int arraySize(10);
    std::array <int, arraySize> array;
    std::cout << "Array: " << std::endl;
    std::generate(array.begin(), array.end(), randomGenerator);
    std::copy(array.begin(), array.end(), std::ostream_iterator <int> (std::cout, " "));
 
    int element;
    int maximalCounter(0);
    for (auto currNum: array) {
        int counter = std::count(array.begin(), array.end(), currNum);
        if (counter > maximalCounter) {
            maximalCounter = counter;
            element = currNum;
        }
    }
    std::cout << std::endl << "Element: " << element << std::endl;
    std::cout << "Index: " << (std::distance(array.begin(), std::find(array.begin(), array.end(), element)) + 1) << std::endl;
 
    return 0;
}
AvengerC
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 18
06.04.2013, 21:08  [ТС]     Не создавая дополнительные массивы, определить какой из элементов потовторяется в последовательсности А1,А2,...Аn., наибольшее число раз #3
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
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
#include <algorithm>
#include <iostream>
#include <iterator>
#include <random>
#include <ctime>
#include <array>
 
int main()
{
    auto randomGenerator = std::bind(std::uniform_int_distribution <> (0, 5),
                                     std::mt19937 (time(nullptr)));
    const int arraySize(10);
    std::array <int, arraySize> array;
    std::cout << "Array: " << std::endl;
    std::generate(array.begin(), array.end(), randomGenerator);
    std::copy(array.begin(), array.end(), std::ostream_iterator <int> (std::cout, " "));
 
    int element;
    int maximalCounter(0);
    for (auto currNum: array) {
        int counter = std::count(array.begin(), array.end(), currNum);
        if (counter > maximalCounter) {
            maximalCounter = counter;
            element = currNum;
        }
    }
    std::cout << std::endl << "Element: " << element << std::endl;
    std::cout << "Index: " << (std::distance(array.begin(), std::find(array.begin(), array.end(), element)) + 1) << std::endl;
 
    return 0;
}
А как-нибудь по проще можно? На знания базового пользователя с++
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
06.04.2013, 21:14     Не создавая дополнительные массивы, определить какой из элементов потовторяется в последовательсности А1,А2,...Аn., наибольшее число раз #4
Цитата Сообщение от AvengerC Посмотреть сообщение
А как-нибудь по проще можно? На знания базового пользователя с++
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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
int main()
{
    srand(time(nullptr));
    const int arraySize(10);
    int array[arraySize];
 
    std::cout << "Array: " << std::endl;
    for (int i = 0; i < arraySize; i++)
        std::cout << (array[i] = rand() % 5) << " ";
 
    int element;
    int elementIndex;
    int maximalCounter(0);
    for (int i = 0; i < arraySize; i++) {
        int counter(0);
        for (int j = 0; j < arraySize; j++)
            counter += array[i] == array[j] ? 1 : 0;
        if (counter > maximalCounter) {
            maximalCounter = counter;
            element = array[i];
            elementIndex = i;
        }
    }
    std::cout << std::endl << "Element: " << element << std::endl;
    std::cout << "Index: " << elementIndex + 1 << std::endl;
 
    return 0;
}
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
06.04.2013, 21:24     Не создавая дополнительные массивы, определить какой из элементов потовторяется в последовательсности А1,А2,...Аn., наибольшее число раз #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
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <algorithm>
 
using namespace std;
 
typedef int arr_type;
struct val_info
{
    val_info(arr_type _val, unsigned _index, unsigned _count):
        val(_val), val_index(_index), val_count(_count) {}
    arr_type val;
    unsigned val_index;
    unsigned val_count;
};
int main()
{
 
    const size_t arr_size = 10;
    arr_type arr[arr_size] = {15,10,30,15,15,80,90,70,15,15};
 
    val_info max_repeat_val(arr[0] + 1,0,0);
 
    for (size_t i = 0; i != arr_size; i++)
    {
        if (max_repeat_val.val == arr[i])
            continue;
        val_info curr_val(arr[i],i, count(arr,arr+arr_size,arr[i]));
 
        if (curr_val.val_count > max_repeat_val.val_count)
        {
            max_repeat_val.val = curr_val.val;
            max_repeat_val.val_count = curr_val.val_count;
            max_repeat_val.val_index = curr_val.val_index;
        }
    }
 
    cout<<"val: "<<max_repeat_val.val<<endl
        <<"count: "<<max_repeat_val.val_count<<endl
        <<"index: "<<max_repeat_val.val_index<<endl;
 
 
    return 0;
}
AvengerC
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 18
06.04.2013, 21:47  [ТС]     Не создавая дополнительные массивы, определить какой из элементов потовторяется в последовательсности А1,А2,...Аn., наибольшее число раз #6
Ev[G]eN, блин, для меня это трудно
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
06.04.2013, 21:57     Не создавая дополнительные массивы, определить какой из элементов потовторяется в последовательсности А1,А2,...Аn., наибольшее число раз #7
AvengerC, ну если не понятен и второй вариант, то тогда все грустно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2013, 22:38     Не создавая дополнительные массивы, определить какой из элементов потовторяется в последовательсности А1,А2,...Аn., наибольшее число раз
Еще ссылки по теме:

C++ Определить наибольшее число среди нечетных элементов последовательности
Для строк символов определить какой символ в каждой строке подряд наибольшее число раз C++
C++ Определить наибольшее число среди нечетных элементов последовательности

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

Или воспользуйтесь поиском по форуму:
AvengerC
0 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 18
06.04.2013, 22:38  [ТС]     Не создавая дополнительные массивы, определить какой из элементов потовторяется в последовательсности А1,А2,...Аn., наибольшее число раз #8
Ev[G]eN, Благодарю.
Yandex
Объявления
06.04.2013, 22:38     Не создавая дополнительные массивы, определить какой из элементов потовторяется в последовательсности А1,А2,...Аn., наибольшее число раз
Ответ Создать тему
Опции темы

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