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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Hope
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 5
#1

Поиск трех максимальных элементов в двумерном массиве - C++

28.05.2009, 09:06. Просмотров 1408. Ответов 4
Метки нет (Все метки)

не могу решить, казалось бы, простую задачку. помогите пожалуйста.
В заданной целочисленной матрице a(n,n), которая инициализируется в динамической памяти (с использованием генератора случайных чисел random), найти:Три максимальных элемента в m – ом столбце ;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2009, 09:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск трех максимальных элементов в двумерном массиве (C++):

Поиск элементов и замена в двумерном массиве - C++
В массиве все элементы ,стоящие выше максимального элемента,заменить на максимальный элемент первого столбца! Есть часть кода где...

Поиск элементов строк и столбцов в двумерном массиве - C++
Добрый вечер, дорогие форумчане! Имеется такая проблема. Мне необходима функция поиска элементов в двумерном массиве по строкам и...

Поиск самой длиной серии одинаковых элементов в двумерном массиве - C++
Помогите, нужно найти самую длинную серию одинаковых элементов в двумерном массиве.

Выполнить в двумерном массиве поиск столбца с максимальной суммой элементов - C++
Выполнить в двумерном массиве поиск столбца с максимальной суммой элементов.Помогите плиз с решением задачи

Поиск произведения нечетных отрицательных элементов в двумерном массиве. В чем ошибка? - C++
Мне нужно сделать программу поиск произведения нечетных отрицательных элементов в двумерном массиве using namespace std;// Здесь...

Функция максимальных элементов в одномерном и двумерном массивах - C++
Описать функцию определения максимального элемента в одномерном массиве. С помощью этой функции найти максимум в каждой строке двумерного...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vourhey
Почетный модератор
6482 / 2257 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
28.05.2009, 09:54 #2
Ну покажи, что именно не получается
0
Hope
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 5
28.05.2009, 16:46  [ТС] #3
#include<conio.h>
#include<stdio.h>
#include<iostream>
#include<math.h>
#include<stdlib.h>

unsigned int r;
using namespace std;

void main()
{
int i,j,m,n=4;
int **a;
a=new int *[n];
for(i=0;i<n;i++)
a[i]=new int[n];
//randomize();
srand(r);//инициализация функции рандома
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=rand();//рандом из чисел

for(i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
cout<<"Vvedite stolbec: ";
cin>>m;
if(m>=n)
cout<<"neverno!";
else
{
int max1,max2,max3;
max1=a[0][m];
max2=a[0][m];
max3=a[0][m];
for(i=0;i<n;i++)
{
if(max1<a[i][m])
max1=a[i][m];

}
for(i=0;i<n;i++)
{

if(max2<a[i][m] && max2!=max1)
max2=a[i][m];

}
for(i=0;i<n;i++)
{
if(max3<a[i][m] && max3!=max1 && max3!=max2)
max3=a[i][m];
}

cout<<"\nmax1="<<max1<<"\nmax2="<<max2<<"\nmax3="<<max3;


}

getch();

}


вот собственно код. самое максимально оно ищет, только все три числа получаются одинаковыми, а надо чтобы были разные
0
Marinich
9 / 9 / 4
Регистрация: 22.05.2009
Сообщений: 54
28.05.2009, 17:35 #4
У тебя 2 явные ошибки
1) В условии if() внутри for
2) Нельзя писать
C++
1
2
3
max1=a[0][m];
max2=a[0][m];
max3=a[0][m];
В этом случае, если максимум будет в первой строчке, то он тоже покажет 3 одинаковых значения

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
#include<conio.h>
#include<stdio.h>
#include<iostream>
#include<math.h>
#include<stdlib.h>
 
unsigned int r;
using namespace std;
 
void main(){
    int i, j, m, n = 4;
    int **a;
    a=new int *[n];
    for(i = 0; i < n; i++)
    a[i] = new int[n];
    //randomize();
    srand(r);//инициализация функции рандома
    for(i = 0; i < n;i ++)
    for(j = 0; j < n;j ++)
    a[i][j] = rand();//рандом из чисел 
    for(i = 0; i < n; i ++){
        for(int j = 0; j < n; j++)
            cout << a[i][j] << " ";
        cout<<"\n";
    }
    cout << "Vvedite stolbec: ";
    cin >> m;
    if(m >= n)
        cout<<"neverno!";
    else{
        int max1,max2,max3;
        max1 = a[0][m];
        max2 = -1;
        max3 = -1;
        for(i = 0; i < n; i ++){
            if(max1<a[i][m])
                max1=a[i][m];
 
        }
        for(i = 0; i < n; i++){
            if(max2 < a[i][m] && a[i][m] != max1)
                max2 = a[i][m];
        }
        for(i = 0; i < n; i ++){
            if(max3 < a[i][m] && a[i][m] != max1 && a[i][m] != max2)
                max3 = a[i][m];
        }
 
        cout << "\nmax1 = " << max1 << "\nmax2 = " << max2 << "\nmax3 = " << max3;
    }
 
    getch();
    return 0;
}
ЗЫ: Довольно сложно проверять код, в которо нет табуляций и пробелов. Если хочешь, чтоб тебе активнее помогали, научись оформлять программы.
1
Hope
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 5
28.05.2009, 18:09  [ТС] #5
Спасибо огромное!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2009, 18:09
Привет! Вот еще темы с ответами:

Поиск числа в двумерном массиве (бинарный поиск) - C++
Произвожу поиск элемента в массиве двумя способами: линейным(последовательным) поиском и бинарным(двоичным). Первый работает на ура. Второй...

Поиск минимума и максимума в двумерном массиве - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main() { int n; cin &gt;&gt; n; int *a = new int; for...

Поиск пиковых точек в двумерном массиве - C++
Здравствуйте, подскажите пожалуйста алгоритм для поиска пиковых точек в двумерном массиве, то есть элементов матрицы, являющихся наибольшим...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.05.2009, 18:09
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru