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

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

Восстановить пароль Регистрация
 
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
08.05.2012, 20:33     Массив. Нахождение максимального числа, повторяющегося более 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
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <time.h>
using namespace std;
 
int main()
{
    
    setlocale (LC_ALL, "Rus");
    //Включаем генератор псевдослучайных чисел
    srand(time( NULL ) );
    //Задаем размеры матрицы
    const int a = 5;
    const int b = 5;
    int s=0;
    int random;
    //Задаем размер массива детектора
    const int c = 200;
    //Инициализируем матрицу
    int myMatrix[a][b];
    //Инициализируем массив детектор
    int ch[c];
    int detect[c];
    int nul=0;
    int summ[a*b]={2,0,45,64,23,86,45,56,2};
    //Заполняем матрицу случайными числами в диапазоне от 1 до c
    for(int i = 0;i<a;i++)
    {
        for(int j = 0; j<b;j++)
        {
                    
                    random= rand()%c+1;
                //continue;
            
            //Внимание! Финт ушами, сгенерированное число сохраняем для проверку уникальности, но не как ЗНАЧЕНИЕ, а как АЙДИ массива, и присваиваем при этом ноль
            //В дальнейшем, в зависимости от того, какое число будет содержаться в этой ячейке, мы будем определять, число повторяемое - или нет
            if(ch[random]<0)
                            ch[random]=0;
            myMatrix[i][j] =  random;
            ch[random]++;
            cout<<random<<"     ";
            //cout <<myMatrix[i][j]<<' ';
        
            
        }
        cout<<endl;
    }
    //Собственно находим искомое максимальное число, по принципу - если значение в массиве с индексом i < 0, значит это число не содержится в матрице
    // если значение в массиве с индексом i = 1, значит оно попалось всего 1 раз, и не удовлетворяет нашему условию
    //если значение в массиве с индексом i > 1, значит оно содержится в матрице больше 1 раза и является максимальным, 
        //т.к. мы перебираем массив задом на перед. И при нахождении максимума - выходим из цикла
    for(int i=0; i<a; i++)
    {
        for (int k=0; k<b; k++)
        {       
            if (myMatrix[i][k]==0) 
            {
                nul++;
                break;
                
            }           
        }
    }
    s=a-nul;
    cout <<endl;
    cout <<"Количество строк, не содержащих ни одного нулевого элемента = "<<s<<endl;
    for(int i = c;i>0;i--)
    {
        if(ch[i]>1)
        {
            
            cout<<"Максимальный элемент  = " <<i<<endl;
            break;
        }
    }
    
    
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2012, 20:33     Массив. Нахождение максимального числа, повторяющегося более 1 раза.
Посмотрите здесь:

C++ Функция для поиска максимального числа в матрице, которое встречается более одного раза
вывод максимального числа которое повторяется больше одного раза. C++
Динамический многомерный массив. Нахождение макс. числа, которое в массиве встречаеться более 1 раза. C++
Нахождение максимального и минимального числа C++
C++ Одномерный массив А суммируется из 30 элементов. Найти и напечатать числа, которые встречаются в массиве более одного раза
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fghjk
3 / 3 / 0
Регистрация: 04.12.2011
Сообщений: 76
08.05.2012, 20:40     Массив. Нахождение максимального числа, повторяющегося более 1 раза. #2
где указываются переменные
C++
1
array[25] ={1,2,3,.....};
а вместо записи
C++
1
random= rand()%c+1;
вот это
C++
1
random = array[(i*5)+j];
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
08.05.2012, 22:26  [ТС]     Массив. Нахождение максимального числа, повторяющегося более 1 раза. #3
fghjk, Спасибо большое! А можете вот объяснить строчку
C++
1
array[(i*5)+j];
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
09.05.2012, 09:50     Массив. Нахождение максимального числа, повторяющегося более 1 раза. #4
Цитата Сообщение от KOPC1886 Посмотреть сообщение
array[(i*5)+j];
это обычная индексация берём i умножаем на 5, прибавляем j - это номер массива
допустим i = 3 j = 4
значит random = array[(i*5)+j];
обозначает random = array[(3*5)+4];
получаем random = array[19];
Yandex
Объявления
09.05.2012, 09:50     Массив. Нахождение максимального числа, повторяющегося более 1 раза.
Ответ Создать тему
Опции темы

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