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

Максимальное из чисел, встречающихся в матрице болеее одного раза - C++

Восстановить пароль Регистрация
 
Supernatural
285 / 141 / 28
Регистрация: 22.11.2010
Сообщений: 1,439
07.01.2014, 23:16     Максимальное из чисел, встречающихся в матрице болеее одного раза #1
C++
1
2
3
4
5
6
7
8
9
10
11
serial_max=0; 
serial=1; 
digit=0; 
digit_max=0; 
for (i = 0; i < 3; i++) {
 for (j = 0; j < 3; j++) {
   if (a[i][j]==a[i][j+1]) {serial++; digit=a[i][j];} else serial=1;
   if (serial_max<serial) {serial_max=serial; serial=0;digit_max=digit;}
}
}
cout<<"digit="<<digit_max<<" "<<serial_max<<"\n";
код прописал, но что-то упускаю, не правильно считает.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2014, 23:16     Максимальное из чисел, встречающихся в матрице болеее одного раза
Посмотрите здесь:

C++ максимальное из чисел, встречающихся в заданной матрице более одного раза.(исправить 1 ошибку)
Найти максимальное из чисел встречающихся в матрице более одного раза. Сделать используя указатели и классы C++
C++ Максимальное из чисел, встречающихся в заданной матрице более одного раза
C++ Дана произвольная матрица, определить: Максимальное из чисел, встречающихся в заданной матрице более одного раза
C++ Двумерный массив. Найти: максимальное из чисел, встречающихся в заданной матрице более одного раза
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
08.01.2014, 00:05     Максимальное из чисел, встречающихся в матрице болеее одного раза #2
А как по-вашему должен работать этот код?
Вот он берёт очередной элемент матрицы и...?
Supernatural
285 / 141 / 28
Регистрация: 22.11.2010
Сообщений: 1,439
08.01.2014, 00:07  [ТС]     Максимальное из чисел, встречающихся в матрице болеее одного раза #3
Цитата Сообщение от NoMasters Посмотреть сообщение
А как по-вашему должен работать этот код?
Вот он берёт очередной элемент матрицы и...?
сравнивает со следующим
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
08.01.2014, 00:12     Максимальное из чисел, встречающихся в матрице болеее одного раза #4
Но разве то, что одно только следующее число не такое же, означает, что в матрице их больше наверняка нет?
Supernatural
285 / 141 / 28
Регистрация: 22.11.2010
Сообщений: 1,439
08.01.2014, 00:30  [ТС]     Максимальное из чисел, встречающихся в матрице болеее одного раза #5
суть задумки:
берется число и за ним следующее, если равны то последовательность+1, если нет, то сброс. Берется следующее число, т.е. которое следовало за предыдущим, и так далее. И так нужно найти самую длинную максимальность
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
08.01.2014, 00:45     Максимальное из чисел, встречающихся в матрице болеее одного раза #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
#include <iostream>
#include <algorithm>
using namespace std;
 
int main()
{
    int arr[10][10];
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            arr[i][j] = rand() % 20 - 10;
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
    int max = arr[0][0];
    for (int i = 0; i < 99; i++)
        for (int j = i+1; j < 100; j++)
            if (arr[i/10][1%10] == arr[j/10][j%10] && arr[i/10][i%10]>max)
                max = arr[i/10][i%10];
    cout << "Max = " << max << endl;
    system("pause");
    return 0;
}
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
08.01.2014, 00:46     Максимальное из чисел, встречающихся в матрице болеее одного раза #7
Тогда для начала нужно определиться, какое число считать следующим за последним в строке. Первое в следующей?
В любом случае написав просто [i][j+1] можно получить индекс за пределами строки.
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
08.01.2014, 01:29     Максимальное из чисел, встречающихся в матрице болеее одного раза #8
Хотя в моей проге ошибка там где я беру за максимум первый элемент массива. Лучше тогда просто инициализировать максимум числом на 1 меньше чем минимальное в диапазоне инициализируемых чисел массива, а для случая в котором ни одно число не повторяется больше 2х раз поставить проверку в конце на равенство этому числу.
Supernatural
285 / 141 / 28
Регистрация: 22.11.2010
Сообщений: 1,439
08.01.2014, 01:31  [ТС]     Максимальное из чисел, встречающихся в матрице болеее одного раза #9
Цитата Сообщение от NoMasters Посмотреть сообщение
Тогда для начала нужно определиться, какое число считать следующим за последним в строке. Первое в следующей?
В любом случае написав просто [i][j+1] можно получить индекс за пределами строки.
этот вариант я упустил, пока попробую с того, с которого начал.

Добавлено через 1 минуту
Цитата Сообщение от Alex566 Посмотреть сообщение
Я правда не проверял.
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
#include <iostream>
#include <algorithm>
using namespace std;
 
int main()
{
    int arr[10][10];
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            arr[i][j] = rand() % 20 - 10;
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
    int max = arr[0][0];
    for (int i = 0; i < 99; i++)
        for (int j = i+1; j < 100; j++)
            if (arr[i/10][1%10] == arr[j/10][j%10] && arr[i/10][i%10]>max)
                max = arr[i/10][i%10];
    cout << "Max = " << max << endl;
    system("pause");
    return 0;
}
стесняюсь спросить, а что этот код делает?
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
08.01.2014, 01:54     Максимальное из чисел, встречающихся в матрице болеее одного раза #10
Цитата Сообщение от Supernatural Посмотреть сообщение
стесняюсь спросить, а что этот код делает?
Цитата Сообщение от Supernatural Посмотреть сообщение
Максимальное из чисел, встречающихся в матрице более одного раза
И кстати я проверил работает.
Максимальное из чисел, встречающихся в матрице болеее одного раза
Alex566
 Аватар для Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
08.01.2014, 02:50     Максимальное из чисел, встречающихся в матрице болеее одного раза #11
Массив 10 на 10 заполняется случайными числами от 0 до 19 и 1 число инициализируется числом 20. Но цикл нашел именно то число максимальное которое повторяется несколько раз. На скрине массив, найденный максимум и посчитанное повторение каждого из чисел.

Останавливаюсь на том что такая программа ищет максимальное среди повторяющихся более 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
#include <iostream>
#define n 5//Количество строк
#define m 10//Количество столбцов
using namespace std;
int main()
{
    int arr[n][m], max;
    //Заполнение
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            arr[i][j] = rand() % 100;
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
    //Поиск
    for (int i = 0; i < n*m-1; i++)
        for (int j = i + 1; j < n*m; j++)
            if (arr[i / m][i % m] == arr[j / m][j % m])
            {
                max = arr[i / m][i % m];
                for (int i2 = i; i2 < n*m-1; i2++)
                    for (int j2 = i2 + 1; j2 < n*m; j2++)
                        if (arr[i2 / m][i2 % m] == arr[j2 / m][j2 % m] && arr[i2 / m][i2 % m]>max)
                            max = arr[i2 / m][i2 % m];
                cout << "Max = " << max<<endl;
                goto end;
            }
    end:
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2014, 11:31     Максимальное из чисел, встречающихся в матрице болеее одного раза
Еще ссылки по теме:

C++ Определить максимальное из чисел, встречающихся в заданной матрице более одного раза
Максимальное из чисел встречающихся в заданной матрице более одного раза C++
C++ Определить максимальное из чисел, встречающихся в заданной матрице более одного раза

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

Или воспользуйтесь поиском по форуму:
Supernatural
285 / 141 / 28
Регистрация: 22.11.2010
Сообщений: 1,439
08.01.2014, 11:31  [ТС]     Максимальное из чисел, встречающихся в матрице болеее одного раза #12
меня несколько смущает вот этот эпизод кода, так как подобные виды координат матрицы я еще не использовал
C++
1
2
3
4
5
6
7
   if (arr[i / m][i % m] == arr[j / m][j % m])
            {
                max = arr[i / m][i % m];
                for (int i2 = i; i2 < n*m-1; i2++)
                    for (int j2 = i2 + 1; j2 < n*m; j2++)
                        if (arr[i2 / m][i2 % m] == arr[j2 / m][j2 % m] && arr[i2 / m][i2 % m]>max)
                            max = arr[i2 / m][i2 % m];
надо это дело как-то попроще сделать.
Yandex
Объявления
08.01.2014, 11:31     Максимальное из чисел, встречающихся в матрице болеее одного раза
Ответ Создать тему
Опции темы

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