Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
#1

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

18.10.2009, 21:53. Просмотров 763. Ответов 7
Метки нет (Все метки)

Задача. В целочисленной матрице А[4][5] определить элемент, который повторяется максимальное число раз. Получить матрицу B умножением матрицы А на этот элемент.


Я не знаю как распланировать алгоритм задачки, для начала....помогите, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2009, 21:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В целочисленной матрице определить элемент, который повторяется максимальное число раз (C++):

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

Определить, сколько раз повторяется определенный элемент матрицы - C++
Народ, помогите пожалуйста! Что то я запутался. допустим у меня есть массив: 1 3 1 4 6 7 1 4 5 8 1 2 9 1 4 6 10 ...

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

Определить, какой из элементов повторяется в массиве наибольшее число раз - C++
Есть задание, но решить не могу, точнее не могу как задали. Можно задачу сделать с использование вложенного цикла, можно и без. Но вот до...

Определить, сколько раз число, введенное пользователем, повторяется в массиве - C++
Как используя массивы создать программу, которая покажет сколько раз число, введенное пользователем повторяется в массиве? Например, есть...

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

7
Rififi
2360 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
18.10.2009, 22:43 #2
NastiKor,

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
#include <algorithm>
#include <functional>
#include <set>
 
/*
        В целочисленной матрице А[4][5] определить элемент,
        который повторяется максимальное число раз.
        Получить матрицу B умножением матрицы А на этот элемент.
*/
 
template <
        typename T, typename _Tr, typename _Ax,
        template <typename, typename, typename> class U>
struct max_type : public std::binary_function<
        typename U<T, _Tr, _Ax>::value_type,
        typename U<T, _Tr, _Ax>::value_type,
        bool>
{
        typedef U<T, _Tr, _Ax> V;
        typedef typename V::value_type value_type;
 
        max_type(const V& v) : v_(v) {}
 
        bool operator()(const value_type& v1, const value_type& v2) const
        {
                return v_.count(v1) < v_.count(v2);
        }
 
        const V& v_;
};
 
template <
        typename T, typename _Tr, typename _Ax,
        template <typename, typename, typename> class U>
max_type<T, _Tr, _Ax, U> max(const U<T, _Tr, _Ax>& u)
{
        return max_type<T, _Tr, _Ax, U>(u);
}
 
int main()
{
        int A[4][5] =
        {
                {1,2,3,4,5},
                {6,7,8,9,0},
                {1,-2,-3,-4,-5},
                {1,2,2,2,5},
        };
 
        int B[4][5];
 
        typedef std::multiset<int> S;
        S s(A[0], A[0] + 4*5);
 
        std::transform(
                A[0], A[0] + 4*5, &B[0][0], 
                std::bind2nd(
                        std::multiplies<int>(),
                        *std::max_element(s.begin(), s.end(), max(s))));
 
        return (0);
}
0
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
18.10.2009, 23:12 #3
NastiKor, есть какие-то ограничения на разброс или значение элементов матрицы?
0
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
18.10.2009, 23:48  [ТС] #4
M128K145, нет ограничений,потому задача для меня затруднительна...


Не знаю я С++, мы учим С.....
0
TanT
эволюционирую потихоньку
466 / 464 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
19.10.2009, 08:53 #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
44
45
46
47
48
49
50
51
52
#include <stdlib.h>
#include <stdio.h>
 
const int N=5, M=4;
 
// В целочисленной матрице А[4][5] определить элемент, который 
// повторяется максимальное число раз.
 
int main()
{ 
    int searchEl, counter, maxCount=-1, maxEl;
    FILE* Fpin=fopen("data.txt","r");
    if (Fpin==NULL)
    {
        printf("ERROR: not open source file");
        system("pause");
        return 0;
    }
 
    // выделение памяти
    int **matrix=(int **)   calloc(M, sizeof(int));   
    for (int i=0; i<M; i++)
        matrix[i]=(int *)   calloc(N, sizeof(int));
 
    // заполняем матрицу
    for(int row=0;row<N;row++)
    {
        for(int col=0;col<M;col++)
        {
            fscanf(Fpin,"%i",&matrix[col][row]);
            printf(" %i",matrix[col][row]);
        }
        printf("\n");
    }
 
    for(int i=0;i<N;i++)
        for(int j=0;j<M;j++)
        { searchEl=matrix[j][i]; counter=0;
            
            for(int row=0;row<N;row++)
                for(int col=0;col<M;col++)
                    if(matrix[col][row]==searchEl) 
                        ++counter;
            if(counter>maxCount)
            { maxCount=counter; maxEl=searchEl; }
        }
    
    printf("MAX occur element: %i  ",maxEl);
 
    printf("\n");system("pause");
    return 0;
}
0
TanT
эволюционирую потихоньку
466 / 464 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
19.10.2009, 08:54 #6
фаил вот
данные свои подставите
0
Вложения
Тип файла: txt data.txt (45 байт, 20 просмотров)
NastiKor
1 / 1 / 0
Регистрация: 05.10.2009
Сообщений: 101
19.10.2009, 20:06  [ТС] #7
TanT, спасибо Вам, но слова calloc, сounter, row увы ничего мне не говорят...мы этого не проходили...
0
TanT
эволюционирую потихоньку
466 / 464 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
19.10.2009, 20:17 #8
спасибо? за что? толку то нету
попробуем так
внимательно посмотрте на код, откомпилируйте и проверьте как работает
для не понятных слов сначала используйте переводчик, потом учебник по С или гугл.
так перевод слов counter и row вам многое бы рассказал,
а строчка int searchEl, counter, maxCount=-1, maxEl; - сказала бы что это просто переменная
жду с нетерпением вашего прогресса
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
#include <stdlib.h>
#include <stdio.h>
 
const int N=5, M=4;
 
// В целочисленной матрице А[4][5] определить элемент, который 
// повторяется максимальное число раз.
 
int main()
{ 
    int searchEl, counter, maxCount=-1, maxEl;
    int matrix[N][M];
 
    for(int row=0;row<N;row++)
    {
        for(int col=0;col<M;col++)
        {
            printf("enter element [%i][%i] ",col,row);
            scanf("%i",&matrix[col][row]);
            
        }
        printf("\n");
    }
 
    for(int i=0;i<N;i++)
        for(int j=0;j<M;j++)
        { searchEl=matrix[j][i]; counter=0;
 
    for(int row=0;row<N;row++)
        for(int col=0;col<M;col++)
            if(matrix[col][row]==searchEl) 
                ++counter;
    if(counter>maxCount)
    { maxCount=counter; maxEl=searchEl; }
    }
 
    printf("MAX occur element: %i  ",maxEl);
 
    printf("\n");system("pause");
    return 0;
}
0
19.10.2009, 20:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2009, 20:17
Привет! Вот еще темы с ответами:

В прямоугольной целочисленной матрице определить количество строк что содержат хотя бы один нулевой элемент. - C++
В прямоугольной целочисленной матрице определить количество строк что содержат хотя бы один нулевой элемент. В прямокутній щлочнсельній...

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

В матрице целых чисел размером 3x7 определить номер столбца, который содержит наименьший элемент - C++
В матрице целых чисел размером 3x7 определить номер столбца, который содержит наименьший элемент.

В прямоугольной матрице определить элемент, который по модулю наименее отличается от среднего арифметического всех элементов матрицы. - C++
В прямоугольной матрице определить элемент, который по модулю наименее отличается от среднего арифметического всех элементов матрицы. ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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