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

Не найду ошибку (функция, которая ищет максимальный элемент, который встречается больше 1 раза) - C++

Восстановить пароль Регистрация
 
victim_666
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 36
22.05.2013, 23:32     Не найду ошибку (функция, которая ищет максимальный элемент, который встречается больше 1 раза) #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int app_2(int **matr, int n, int m)
{
    int first=matr[0][0];
    int end=matr[0][0];
    for(int i=0; i < n;i++)
    for(int j=0; j < m ;j++)
            if(matr[i][j]>=first) {
                for(int k=i; k < n;k++)
                for(int l=j+1; l < m ;l++)
                        if(matr[k][l]==matr[i][j]) end=matr[i][j]; 
                
}
    if(end!=matr[0][0])  cout<<end<<"\n";
    else cout<<"lose\n";
    return 0;
}
Функция, которая исчет максимальный элемент, который встречается больше 1 раза.Где ошибка?Если я переменной end при объявлении ничего не присваиваю, то всё работает, но тогда программа не правильно поведёт себя, если повторяющегося числа вообще не будет в матрице.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2013, 23:32     Не найду ошибку (функция, которая ищет максимальный элемент, который встречается больше 1 раза)
Посмотрите здесь:

C++ Функция для поиска максимального числа в матрице, которое встречается более одного раза
C++ STL list. Какая функция ищет указатель на элемент равный а ?
Найти максимум, который встречается более одного раза. C++
есть ли функция в библиотеке string.h, которая ищет в слове определенный символ ? C++
C++ Деструктор (программа, которая ищет минимальный элемент массива)
C++ Функция,которая определяет, встречается ли заданная буква, которая передается в функцию как параметр
Определить, встречается ли цифра M в числе Р больше чем 2 раза C++
Функция, которая увеличивает каждый элемент одномерного массива в два раза C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
23.05.2013, 00:31     Не найду ошибку (функция, которая ищет максимальный элемент, который встречается больше 1 раза) #2
не вникал в сам алгоритм.
если дело только в переменной end, то она может быть не int, а указателем на int.
в этом случае инициализируем ее нулем и после цикла проверяем на нуль.
если указатель нулевой - значит ничего не нашли, если не нуль - то нашли и выводим
значение, на которое он указывает.
итого, 4 строка заменяется на
const int* end = 0;
10 строка заменяется на if(matr[k][l]==matr[i][j]) end=&matr[i][j];
ну и после цикла думаю понятно что нужно сделать.
Yandex
Объявления
23.05.2013, 00:31     Не найду ошибку (функция, которая ищет максимальный элемент, который встречается больше 1 раза)
Ответ Создать тему
Опции темы

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