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

Динамический многомерный массив. Нахождение макс. числа, которое в массиве встречаеться более 1 раза. - C++

Восстановить пароль Регистрация
 
Asdf
1 / 1 / 0
Регистрация: 18.03.2012
Сообщений: 110
14.04.2012, 20:54     Динамический многомерный массив. Нахождение макс. числа, которое в массиве встречаеться более 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
    srand((unsigned)time(NULL));
    cout << "Matrix size N: ";
    cin >> size1;
    cout << endl;
    cout << "Matrix size M: ";
    cin >> size2;
    cout << endl;
    int **arr = new int * [size1];
    for (i=0; i<size1; i++)
    {
        arr[i] = new int [size2];
    }
    for (i=0; i<size1; i++)
    {
        for (j=0; j<size2; j++)
        {
            arr[i][j] = rand()%49-10;
            cout << arr[i][j] << "\t";
        }
 
            cout << endl;
    }
Добавлено через 26 минут
При инициализации методом массива детектора, появилась такая вот ошибка Необработанное исключение в "0x003543d1" в "Lab_rab_2_1.exe": 0xC0000005: Нарушение прав доступа при записи "0x60003060". Что может это значить? Код:
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
#include <iostream>
#include <ctime>
#include <conio.h>
 
using namespace std;
void main()
{
    
    int size1, size2, i, j;
    const int c=49;
    srand((unsigned)time(NULL));
    cout << "Matrix size N: ";
    cin >> size1;
    cout << endl;
    cout << "Matrix size M: ";
    cin >> size2;
    cout << endl;
    int x[c]; // Массив детектор
    int **arr = new int * [size1];
    for (i=0; i<size1; i++)
    {
        arr[i] = new int [size2];
    }
    for (i=0; i<size1; i++)
    {
        for (j=0; j<size2; j++)
        {
            int randomDigit = rand()%c-10;
            if(x[randomDigit] < 0)
                x[randomDigit] = 0;
            arr[i][j] = randomDigit;// указывает на эту строку
            x[randomDigit]++;
            cout<< randomDigit <<"\t";
        }
 
            cout << endl;
    }
    for(i = c; i>0; i--)
    {
        if(x[i]>1)
        {
            cout << "Maximum Repeated Element is = " << i;
            break;
        }
    }
    delete [] arr;
    cout << endl;
    cout << "Press Any Key to Exit...";
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2012, 20:54     Динамический многомерный массив. Нахождение макс. числа, которое в массиве встречаеться более 1 раза.
Посмотрите здесь:

C++ Функция для поиска максимального числа в матрице, которое встречается более одного раза
Массив. Нахождение максимального числа, повторяющегося более 1 раза. C++
C++ Одномерный массив А суммируется из 30 элементов. Найти и напечатать числа, которые встречаются в массиве более одного раза
Динамический массив скопировать числа которые повторились 2 раза C++
Многомерные массивы. Найти и напечатать числа, которые встречаются в массиве более одного раза C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
15.04.2012, 02:39     Динамический многомерный массив. Нахождение макс. числа, которое в массиве встречаеться более 1 раза. #2
Цитата Сообщение от Asdf Посмотреть сообщение
Отсортировать массив по возрастанию и потом проверять все числа или же, инициализировать какой либо массив детектор без сортировки?
как удобнее)

Цитата Сообщение от Asdf Посмотреть сообщение
Необработанное исключение в "0x003543d1" в "Lab_rab_2_1.exe": 0xC0000005: Нарушение прав доступа при записи "0x60003060".
скорей всего выход за границы массива
Asdf
1 / 1 / 0
Регистрация: 18.03.2012
Сообщений: 110
15.04.2012, 12:59  [ТС]     Динамический многомерный массив. Нахождение макс. числа, которое в массиве встречаеться более 1 раза. #3
Хмм... А как сделать, чтобы не выходило? Просто у меня такая ошибка не всегда выскакивает, а только иногда при заполнении массива.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
16.04.2012, 00:55     Динамический многомерный массив. Нахождение макс. числа, которое в массиве встречаеться более 1 раза. #4
возможно дело в обращении к неинициализированному элементу массива
C++
1
x[randomDigit]++;
Asdf
1 / 1 / 0
Регистрация: 18.03.2012
Сообщений: 110
16.04.2012, 23:30  [ТС]     Динамический многомерный массив. Нахождение макс. числа, которое в массиве встречаеться более 1 раза. #5
Нуу не исключено... А если чисто с самим массивом сделать, то как лучше, чтобы не брать [randomDigit]? Или его можно где то описать, чтобы проходило нормально инициализация?
Yandex
Объявления
16.04.2012, 23:30     Динамический многомерный массив. Нахождение макс. числа, которое в массиве встречаеться более 1 раза.
Ответ Создать тему
Опции темы

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