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

максимальный из элементов встречающийся в матрице более 1 раза - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перегрузка оператора ввода вывода http://www.cyberforum.ru/cpp-beginners/thread850615.html
Есть два хэдера(header.h и Array.h) и исполняемая программа main.cpp в которой я как раз и обращаюсь к оператору ввода Array.h #pragma once #include <iostream> #include "header.h" class Array: public Container{ private: char* data;
C++ Эти треугольники являются подобными числа a и b выражают длинны катетов одного прямоугольного треугольника,с и d - другого. Эти треугольники являются подобными. помогите в этих программах я 0 http://www.cyberforum.ru/cpp-beginners/thread850614.html
C++ Использование LAPACK на c++
Здравствуйте! Помогите разобраться с установкой LAPACk на проект c++. Нужно реализовать алгоритмы разложений матриц. Подкиньте рабочий проект, а я уж сам потом разберусь Заранее спасибо
Передача массива в функцию по ссылке C++
Здравствуйте. Есть функция: void f(int &a) { int *p=&a; p=1; } Но почему-то при попытке передать ей массив ругается дебаггер: ...|10|error: invalid initialization of non-const reference of type ‘int&’ from an rvalue of type ‘int*’| Как с этим справиться?
C++ Структура в стеке http://www.cyberforum.ru/cpp-beginners/thread850572.html
Я наверное уже всех задолбал со своим стеком, но всё же мне еще нужна помощь)) Код, который ниже должен запрашивать у пользователя ввод структуры, которая после помещается в стеке. Так же программа может этот стек выводить и для сохранения информации я сохраняю этот стек в другом стеке :) . Но при компиляции выдает ошибку в выводе: 'class std::stack<Football>' has no member named 'fio'| и так...
C++ Работа с указателями Расскажите как работает каждая строка в коде char *A = "123456789"; unsigned B = 1; char *X = A + B; char *Y = A - (- B); подробнее

Показать сообщение отдельно
daslex
1088 / 498 / 102
Регистрация: 02.08.2011
Сообщений: 2,479
05.05.2013, 12:19     максимальный из элементов встречающийся в матрице более 1 раза
Немного не доделанный, но вот вам вариант решения согласно вашему условию
максимальный из элементов встречающийся в матрице более 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
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <iostream>
#include <ctime>
using namespace std;
 
/*ФУНКЦИЯ ВЫДЕЛЯЕТ ПАМЯТЬ ДЛЯ ДВУМЕРНОГО МАССИВА*/
void initmas(int **(&mas),int N,int M)
{
    mas=new int*[N];
    for (int i=0;i<M;i++)
    {
        mas[i]=new int[M];
    }
}
 
/*ФУНКЦИЯ ОЧИЩАЕТ ПАМЯТЬ ОТ ВЫДЕЛЕННОЙ ПАМЯТИ ПО ДВУМЕНРНЫЙ МАССИВ*/
void destroymas(int **(&mas), const int N,const int M)
{
  for (int i = 0; i < M; i++)
  {
     delete [] mas[i];
  }
  
}
 
/*ФУНКЦИЯ ЗАПОЛНЯЕТ ДВУМЕРНЫЙ МАССИВ ДАННЫМИ*/
void fillmas(int **(&mas),int N,int M)
{
   srand(time(NULL)); //Использован генератор случайных значений для экономии времени
   for (int i=0;i<N;i++)
   {
       for (int j=0;j<M;j++)
       {
           mas[i][j]=rand()%50+1;
       }
   }
}
 
/*ФУНКЦИЯ ПОКАЗЫВАЕТ ДВУМЕРНЫЙ МАССИВ НА ЭКРАНЕ*/
void showmas(int **(&mas),int N,int M)
{
    for (int i=0;i<N;i++)
    {
        for (int j=0;j<M;j++)
        {
            cout<<mas[i][j]<<"\t";
        }
        cout<<"\n";
    }
}
 
 
/*ФУНКЦИЯ ДЛЯ ПОЛУЧЕНИЯ ЭЛЕМЕНТОВ ДВУМЕРНОГО МАССИВА В ПОРЯДКЕ ВОЗРАСТАНИЯ
Т.Е. нужна для определения каждого из последующих вероятных максимумов*/
void createsortmas(int **mas,int N,int M)
{
   int *temp=new int[N*M]; //Один из самых простых вариантов рассматривать двумерный массив как одномерный
   int count=0; //индексы одномерного массива
 
   /*Копируем данные двумерного массива в одномерный*/
   for (int i=0;i<N;i++)
   {
       for (int j=0;j<M;j++)
       {
          temp[count]=mas[i][j];
          count++;
       }       
   }
 
   /*НЕ эффективная, но максимально простая пузырьковая сортировка одномерного массива*/
    for (int i=1;i<N*M;i++) 
    {
        for (int j=0;j<N*M-1;j++)
        {
                  if (temp[j]<temp[j+1]) swap(temp[j],temp[j+1]); //Если текущий элемент больше следующего, меняем их местами
        }
    }
 
   /*АНАЛИЗ ОДНОМЕРНОГО МАССИВА НА ДВА ИДУЩИХ ПОДРЯД ОДИНАКОВЫХ ЭЛЕМЕНТОВ (в нашем случае это и есть максимум, встречающийся два раза)*/
   for (int i=0;i<N*M;i++)
   {
       if (temp[i]==temp[i+1])
       {
           cout<<"Максимальный элемент, встречающийся более одного раза = ";
           cout<<temp[i];
           break;
       }
   }
   //Остается дописать несложное условие на случай если таких элементов в массиве не будет
   
   delete []temp; //Не забываем чистить память
  
}
 
int main()
{
 
    
    int N=3,M=4,**Arr=NULL,**temp=NULL; //N строки,M столбцы, Arr массив
 
    
    initmas(Arr,N,M); //Выделение памяти
    fillmas(Arr,N,M); //Заполнение массива
    showmas(Arr,N,M); //Показываем что получилось
    createsortmas(Arr,N,M); //Функция создает одномерный массив на основе двумерного и анализирует максимумы
    destroymas(Arr,N,M); //Очистка памяти
 
 
 
 cin.get();
 cin.get();
 
 
 
}
 
Текущее время: 01:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru