Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 21.06.2018
Сообщений: 33

Определить, есть ли в заданной матрице строка, в которой имеется два элемента, имеющие наибольшие значения

26.06.2018, 21:45. Показов 1835. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан двумерный массив размером n*m, заполненный случайными числами. Определить, есть ли в данном массиве строка, в которой имеется два элемента массива, имеющие наибольшие значения (т.е max1 = 30 and max2 = 30).

Массив заполняется нормально, но он не может нормально определит 2 максимальный элемента из-за того, что я скорей всего неправильно делаю цикл(Хотя этот же код в Delphi работает нормально).

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
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
using namespace std;
int main()
    {   srand(time(NULL));
     int n, m ,i, j, max, max2, jj, ii, pp, p;
     string d;
     max = -11;
        p = 0;
        pp = 0;
        cout <<"enter n"<< endl;
        cin >> n;
            cout <<"enter m"<< endl;
        cin >> m;
        int a[m][n];
        
        
        for(i = 0; i<=m; i++){
    
            for (j = 0; j<=n-1; j++) {
                
             a[i][j] = 10 - rand() % 10;
            cout << a[i][j] << "    ";
            
             if(a[i][j] > max ){
                max = a[i][j];
                jj = j;
                ii = i;
             }      
             
         }
         cout <<endl;
             
     }
     
     a[ii][jj] = -11;
     
     for(i = 0; i<=m; i++){
        
        for(j = 0; j<=n; j++){
            
            if((a[i][j] == max) && (jj == j)){
                p = 1;
             }
             else {
                pp = 1;
             }
             
         }
         
     }
     
     if(p == 1){
      d = "yes";    
     }
     if(pp == 1){
        d = "no";
         
     }
    cout <<"otvet = "<<d<<endl; 
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.06.2018, 21:45
Ответы с готовыми решениями:

Определить, есть ли в заданной матрице строка, в которой имеется два элемента, имеющие наибольшие значения
Дан двумерный массив размером n*m, заполненный случайными числами. Определить, есть ли в данном массиве строка, в которой имеется два...

Есть ли в данном массиве строка, в которой имеется два элемента массива, имеющие наибольшие значения
ИСПРАВИТЬ ОШИБКУ!!! Delphi. Задача такая: Дан двумерный массив размером n*m, заполненный случайными числами. Определить, есть ли в...

Определить, есть ли в данном массиве строка, в которой имеется два максимальных элемента
Помогите решить задачу на паскаль((( Дан двумерный массив размером n*m, заполненный целыми числами с клавиатуры. Определить, есть ли в...

8
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
26.06.2018, 22:39
Цитата Сообщение от holyhex Посмотреть сообщение
max1 = 30 and max2 = 30
эта строка была в условии задачи ?
0
0 / 0 / 0
Регистрация: 21.06.2018
Сообщений: 33
27.06.2018, 08:38  [ТС]
Нет
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
27.06.2018, 09:09
Этот код вообще не должен скомпилироваться даже.
Цитата Сообщение от holyhex Посмотреть сообщение
int a[m][n];
Даже если заработает - это exception
Цитата Сообщение от holyhex Посмотреть сообщение
for(i = 0; i<=m; i++){ for (j = 0; j<=n-1; j++) {
После заполнения и вывода матрицы вообще происходит невесть что)
0
0 / 0 / 0
Регистрация: 21.06.2018
Сообщений: 33
27.06.2018, 09:28  [ТС]
Вы не правы, я уже нашел проблему сам. Мне нужен был ключ и все работает нормально.(я в dev c++ делаю).
0
458 / 294 / 191
Регистрация: 23.06.2018
Сообщений: 678
27.06.2018, 10:55
Лучший ответ Сообщение было отмечено holyhex как решение

Решение

holyhex, хоть вы и решили проблему, но предупрежу, что вы выходите за пределы массива.
При создании массива размером m элементы пронумерованы от 0 до m-1, а вы со своими циклами заходите на строку под номером m, которой нет.
1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
27.06.2018, 12:42
Цитата Сообщение от holyhex Посмотреть сообщение
Нет
В таком случае Вам нужен другой код. На мой взгляд два наибольшие - это не обязательно 2 одинаковые (они будут одинаковыми если в массиве 2 максимальных и разными если в массиве 1 максимальный). Например: {20, 20, 3} - два наибольшие это 20 и 20. Если массив такой: {20, 12, 7} - два наибольшие это 20 и 12. Если не получится сделать код самостоятельно - сообщите.

Добавлено через 10 минут
но лучше конечно предварительно уточнить условие, чтобы было понятно что от Вас требуется
1
0 / 0 / 0
Регистрация: 21.06.2018
Сообщений: 33
27.06.2018, 13:28  [ТС]
Да, от меня требуют именно 2 одинаковых максимальный числа(20=20). Я уже разобрался.

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
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
using namespace std;
int main()
    {   srand(time(NULL));
     int n, m ,i, j, max, max2, k = 1, jj = 0, ii = 0, pp, p;
     string d;
     max = -11;
        p = 0;
        pp = 0;
        cout <<"enter n"<< endl;
        cin >> n;
            cout <<"enter m"<< endl;
        cin >> m;
        int a[m][n];
        
        
        for(i = 0; i<=m-1; i++){
    
            for (j = 0; j<=n-1; j++) {
                
             a[i][j] = 20 - rand() % 10;
            cout << a[i][j] << "    ";
            
             if(a[i][j] > max ){
                max = a[i][j];
                jj = j;
                ii = i;
             }      
            
         }
         cout <<endl;
          
     }
     cout << "max 1 = " << max<< endl;  
     a[ii][jj] = -11;
     
     for(j = 0; j<=n-1; j++){
        
        for(i = 0; i<=m-1; i++){
            
            if((a[i][j] == max) && (ii == i)){
                p = 1;
                
             }
             else {
                pp = 1;
             }
             
         }
         
     }
     
     if(p == 1){
      d = "yes";
      
      
     k = 0; 
     }
     if((pp == 1) && (k == 1)){
        d = "no";
         
     }
    cout <<"otvet = "<<d<<endl; 
    
}
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
27.06.2018, 13:38
Цитата Сообщение от holyhex Посмотреть сообщение
Да, от меня требуют именно 2 одинаковых максимальный числа(20=20). Я уже разобрался.
Не думаю что Вы разобрались. В этом случае условие условие звучало бы так:

есть ли в данном массиве строка, в которой имеется два элемента массива, имеющие наибольшЕЕ значениE (а не наибольшИЕ значениЯ)

или так:
есть ли в данном массиве строка, в которой имеется два элемента массива с максимальным значением
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.06.2018, 13:38
Помогаю со студенческими работами здесь

Определить, есть ли в данном массиве строка, в которой имеется два максимальных элемента всего массива
Дан двумерный массив размерностью n х m, заполненный случайными числами. Определить, есть ли в данном массиве...

Определить, есть ли в данном массиве строка, в которой имеется два максимальных элемента всего массива
1. Дан двумерный массив размером п*m, заполненный случайными числами. Определить, есть ли в данном массиве строка, в которой имеется два...

Определить, есть ли в матрице строка, в которой ровно два нечетных элемента
Привет. Не могу написать программу, поможете? Дана матрица размером m x n, заполненная случайным образом. Определить, есть ли в...

Определить есть ли в матрице строка, в которой имеются два заданных элемента
Помогите пожалуйста!!! 1) Дан двумерный массив размерностью n x m, заполненный целыми случайными числами. Определить есть ли в данном...

Двумерные массивы. Есть ли строка, в которой имеется два максимальных элемента
Исходная матрица должна быть выведена на экран в виде таблицы. Все преобразования производить с исходным массивом. После каждоо...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru