Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2015, 20:40   #1
Namikan
 
Регистрация: 13.10.2014
Сообщений: 8
По умолчанию Повторы в двумерном массиве

Задание :
Найти максимальное из чисел , которые встречаются в двумерном массиве больше одного раза. Поиск повторов должен быть в виде функции.Массив можно ввести с клавиатуры , или заполнить рандомно.
Помогите пожалуйста , проблема в поиске кол-ва вхождений каждого элемента в массив.
Namikan вне форума Ответить с цитированием
Старый 03.06.2015, 20:47   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А как пробовал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.06.2015, 21:02   #3
Namikan
 
Регистрация: 13.10.2014
Сообщений: 8
По умолчанию

Вот мои попытки , но как-то убого смотрится (
Код:
#include <iostream>
using namespace std;
int od(int n , int m ,int **matrix){
    int k=0,l=0,count=0;
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            if(matrix[i][j]==matrix[k][l])
                count++;
                k++;
        }
        l++;
    }
    cout<<count<<endl;

}
int main(){
int n,m,i=0,j=0;
cin>>n>>m;
    int **matrix = new int *[n];
         for (i=0; i<n; i++)
             matrix[i] = new int [m];
for (i = 0; i<n; i++)
    for (j = 0; j<m; j++){
        cout << "Element " << "[" << i+1 << " , " << j+1 << "]: "  ;
            cin >> matrix[i][j];
        }
         //выводим массив
cout << "matrix: " << endl;
    for (i=0; i<n; i++)
               {
                  for (j=0; j<m; j++)
                    cout << matrix[i][j] << " ";
                cout << endl;
               }
            cout << endl;
            od(n,m,matrix);

    return 0;
}
Namikan вне форума Ответить с цитированием
Старый 03.06.2015, 21:32   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну тогда так:
Код:
bool od(int v,int **matrix){
    int k=0,l=0,count=0;
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            if(matrix[i][j]==v) if(count>1) return true; else count++;
        }
    }
 return count>1;
}
Это проверка на кол-во более одного раза.
Далее
Код:
int SeekMax(int n , int m ,int **matrix){
 int max=matrix[0][0];
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            if(od(matrix[i][j],matrix) if(matrix[i][j]>max) max=matrix[i][j];
        }
    }
 return max;
}
Т.е. на каждой итерации SeekMax прозваниваем матрицу. Если переданное для прозвонки число появляется более 1 раза, то od() прерывает свою работу, сигнализируя, что это число попадает под условие.
Ну и его фиксируем в максимум.

Идея понятна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рассчет в двумерном массиве (С++) Faraon9 Помощь студентам 2 08.12.2012 19:21
Сортировка в двумерном массиве scoprion Помощь студентам 1 12.01.2011 20:30
Повторы в двумерном массиве rusasha Паскаль, Turbo Pascal, PascalABC.NET 1 05.05.2010 08:26
Игра на двумерном массиве Serg-Grin Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 19.02.2010 20:51
Random в двумерном массиве. Lazio Помощь студентам 7 01.11.2009 22:53