Форум программистов, компьютерный форум 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); подробнее

Показать сообщение отдельно
Туся111
0 / 0 / 0
Регистрация: 18.03.2013
Сообщений: 43
04.05.2013, 17:00  [ТС]     максимальный из элементов встречающийся в матрице более 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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
void main(void) // головная программа
{
setlocale (0, "Rus"); // русский язык
int a;
do
{
int count=0; // счетчик
int count1=0; 
int n; // переменая для количества строк
int m; //переменая для количества столбцов
int i; //обьяв. переменую
int j; //обьяв. переменую
cout<<"введите количество строк"<<endl;
        cin>>n;// вводим кол строк
cout<<"введите количество столбцов"<<endl;
        cin>>m;// водим количество столбцов
        int**mass=new int*[n];                  //      динамическое 
for (i=1; i<=n; i++)                    //      выделение
    mass[i]=new int[m];             //          памяти под массив
cout<<"введите элементы массива"<<endl;
 for (i=1; i<=n; i++)
    {
        for (j=1; j<=m; j++)
          { 
                    cin>>mass[i][j];// водим массив
          }
    } 
  for (i=1; i<=n; i++)
  {    
        for (j=1; j<=m; j++)
        {         
            if (mass[i][j]==0)// если не равно 0 тогда....
             {
                count1++;//нарастили счетчик
             }
        }
      if (!count1)// если коли. нулевых элементов в массиве равно количество строк тогда
        {
          count++;// нарастили счетчик
        }
        count1=0;// обнулили счетчик
   }  
    cout<<"количество строк не содержащие нулевые эжлементы "<<count<<endl;// выводим результат
    int max =0;
    int sum_max=0;
    if (mass[i][j] > max) //ищем максимальный элемент
            {
                max =mass[i][j];//сохраняем
            }
 
        cout << endl; // Двумерный массив. Строка кончилась, переводим строку
        //и проходим по массиву
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <=m; j++)
        {
            if (mass[i][j]  == max )//определяем количество максимальных элементов
            {
              sum_max++;      //суммируем
            }
         }
     }
    if (sum_max > 1) //если макс эелементов больше 1 печатаем
    {
 
      cout << "Максимальных элементов =" << sum_max << endl;
       cout << "Максимальный элемент  = " << max << endl;
    }
    else   //если 1 выводим значение
     cout << "Максимальный элемент 1 = " << max << endl;
cout << "Повторить нажми 0" << endl; // вывод сообщения на экран
cin>> a;
}
 while(a==0);
}
 
[size="1"][color="grey"][I]Добавлено через 33 секунды[/I][/color][/size]
вот он считает все строки без нулей а дальше ошибку выдает, в чем проблема?
 
[size="1"][color="grey"][I]Добавлено через 7 минут[/I][/color][/size]
void main(void) // головная программа
{
setlocale (0, "Rus"); // русский язык
int a;
do
{
int count=0; // счетчик
int count1=0; 
int n; // переменая для количества строк
int m; //переменая для количества столбцов
int i; //обьяв. переменую
int j; //обьяв. переменую
cout<<"введите количество строк"<<endl;
        cin>>n;// вводим кол строк
cout<<"введите количество столбцов"<<endl;
        cin>>m;// водим количество столбцов
        int**mass=new int*[n];                  //      динамическое 
for (i=1; i<=n; i++)                    //      выделение
    mass[i]=new int[m];             //          памяти под массив
cout<<"введите элементы массива"<<endl;
 for (i=1; i<=n; i++)
    {
        for (j=1; j<=m; j++)
          { 
                    cin>>mass[i][j];// водим массив
          }
    } 
  for (i=1; i<=n; i++)
  {    
        for (j=1; j<=m; j++)
        {         
            if (mass[i][j]==0)// если не равно 0 тогда....
             {
                count1++;//нарастили счетчик
             }
        }
      if (!count1)// если коли. нулевых элементов в массиве равно количество строк тогда
        {
          count++;// нарастили счетчик
        }
        count1=0;// обнулили счетчик
   }  
    cout<<"количество строк не содержащие нулевые эжлементы "<<count<<endl;// выводим результат
    int max =0;
    int sum_max=0;
     for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <=m; j++)
        {
    if (mass[i][j] > max) //ищем максимальный элемент
            {
                max =mass[i][j];//сохраняем
            }
        }
     }
 
        cout << endl; // Двумерный массив. Строка кончилась, переводим строку
        //и проходим по массиву
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <=m; j++)
        {
            if (mass[i][j]  == max )//определяем количество максимальных элементов
            {
              sum_max++;      //суммируем
            }
         }
     }
    if (sum_max > 1) //если макс эелементов больше 1 печатаем
    {
       cout << "Максимальный элемент  = " << max << endl;
    }
    else   //если 1 выводим значение
     cout << "Максимальный элемент 1 = " << max << endl;
cout << "Повторить нажми 0" << endl; // вывод сообщения на экран
cin>> a;
}
 while(a==0);
}
все работает)))) только не правильно я ввожу матрицу
1 2
1 3
Максимум больше 1 раза=1
а у меня выводит 3

Добавлено через 3 минуты
при этом он еще должен при отсутствии повторяющихся элементов вывести сообщение что посторяющихся элементов нет)
 
Текущее время: 15:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru