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

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

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

Простая задача, помогите найти макс. элементы в матрице - C++

22.10.2008, 15:12. Просмотров 1288. Ответов 11
Метки нет (Все метки)

Есть матрица, необходимо найти максимальный элемент, встречающийся более одного раза.

Максимальный элемент нашел (с помощью встроенной функции max() в iostream.h), но не могу понять как реализовать прверку есть ли еще такие... Т.е. в одномерном массиве я понял как это сделать, а как для матрицы? Покажите на примере, пожалуйста...


Есть матрица, необходимо найти максимальный элемент, встречающийся более одного раза.

Максимальный элемент нашел (с помощью встроенной функции max() в iostream.h), но не могу понять как реализовать прверку есть ли еще такие... Т.е. в одномерном массиве я понял как это сделать, а как для матрицы? Покажите на примере, пожалуйста...


Код
int i,j,a,f,f1=0;
for(i=0;i<matr->ColCount;i++)
{
        for(j=0;j<matr->RowCount;j++)
        {
                a=StrToInt(Form2->matr->Cells[i][j]);
                f=max(a,f);
                f1=f;
        }
}
Edit1->Text="Макс. элемент "+IntToStr(f1);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2008, 15:12     Простая задача, помогите найти макс. элементы в матрице
Посмотрите здесь:

Простая задачка, но туплю, помогите найти ошибку с new. - C++
Написано в C++ Builder 6, для решения конкретного уравнения. Вводить число 0.3. Выдаёт ошибку в строке: float *temp=new float; //Тут...

Как найти мин. и макс. элементы массива? - C++
Как найти минимальный и максимальный элементы массива и их индексы,и заменить все отрицательные элементы на 0?) в С++

Простая задача: найти суму углов треугольника - C++
Итак, имеется такая студенческая задача: Треугольник задан тремя точками на плоскости(все данный заведомо правильные и имеется ввиду...

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

С++/уничтожение строки с Макс элем в матрице! - C++
ЗАДАНИЕ Уничтожить строку, в которой находится максимальный элемент матрицы. Методические указания: 1. Для выделения памяти под...

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

В матрице найти элементы min и max и найти в каких индексах они находятся (столбец и строка) - C++
Задание: Дан массив 20x5. В нем найти элементы min и max и найти в каких индексах они находятся. (столбец и строка). Вроде реализовал....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spo1ler
292 / 52 / 3
Регистрация: 22.05.2008
Сообщений: 788
22.10.2008, 15:23     Простая задача, помогите найти макс. элементы в матрице #2
Вообще то, тут вполне можно написать свою. Тоесть
Код
int max=matr[0][0];
for(int i=0; i<=WIDTH; i++){
    for(int n=0; n<=HEIGHT; n++){
        if(matr[i][n]>=max) max=matrp[i][n];
    }
}
Lord_Voodoo
Супер-модератор
8580 / 2180 / 61
Регистрация: 07.03.2007
Сообщений: 10,863
Завершенные тесты: 1
22.10.2008, 15:28     Простая задача, помогите найти макс. элементы в матрице #3
пробегись по матрице, найди все элементы по заданному критерию в массив одномерный - ну а там уже по отработанному алгоритму
Sergei
1428 / 695 / 40
Регистрация: 22.04.2008
Сообщений: 1,608
22.10.2008, 15:52     Простая задача, помогите найти макс. элементы в матрице #4
Здесь я думаю так надо сделать, в цикле искать максимальный элемент,
потом посчитать сколько раз встречается данный элемент в матрице и если количество таких элементов больше 1 то берем этот и выходим из цикла,
иначе опять ищем максимальный элемент но меньше этого и т.д. пока не находим то что нужно
SL1M
0 / 0 / 0
Регистрация: 25.03.2008
Сообщений: 22
22.10.2008, 16:48  [ТС]     Простая задача, помогите найти макс. элементы в матрице #5
Во-оот. А как посчитать сколько раз он встречается? Я понимаю что через счетчик можно, а пример?
Sergei
1428 / 695 / 40
Регистрация: 22.04.2008
Сообщений: 1,608
22.10.2008, 16:53     Простая задача, помогите найти макс. элементы в матрице #6
Да ты правильно мыслишь объяви просто переменную целого типа
и в цикле проходи все элементы матрицы и сравнивай с максимальным элементом
например так
Код
int countmax = 0;
for(int i=0;i<n;i++)
  for(int j=0;j<m;j++)
   {
     if(a[i][j] == maxelement)
     {
         countmax++;
     }
   }
SL1M
0 / 0 / 0
Регистрация: 25.03.2008
Сообщений: 22
22.10.2008, 20:37  [ТС]     Простая задача, помогите найти макс. элементы в матрице #7
Ага, пасиба.
Дальше саи додумаю
Sergei
1428 / 695 / 40
Регистрация: 22.04.2008
Сообщений: 1,608
22.10.2008, 20:48     Простая задача, помогите найти макс. элементы в матрице #8
Окей
SL1M
0 / 0 / 0
Регистрация: 25.03.2008
Сообщений: 22
24.10.2008, 17:17  [ТС]     Простая задача, помогите найти макс. элементы в матрице #9
Сделал, но кажется не правильно как-то, аля *быдло-кодер*...
Посмотрите, пожалуйста, и напишите замечания.
Сомнений много, в частности работа с динам. памятью, т.к. раньше ее не использовал...
Сделал все в три шага:
1. Перевел матрицу в одномерный массив
2. В этом массиве нашел повторяющиеся элементы и записал их в новый массив
3. В новом массиве нашел максимальный элемент
Код
#include <iostream.h>
#include <math.h>
#include <stdio.h>
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
 int a[3][3]={{1,2,2},{2,5,7},{7,8,9}};
 int b[9];
 int i, j, k=0;
 for(i=0;i<3;i++)
 {
    for(j=0;j<3;j++)
    {
       for(;;)
       {
          b[k]=a[i][j];
          k++;
          break;
       }
    }
 }

 for(i=0;i<k;i++)
 printf("%i ",b[i]);
 getch();

 int *t = new int;
 int  m,u=0,x=0,f,f1=0;
 for(i=0;i<9;i++)
 {
    m=0;
    for(j=1;j<10;j++)
    {
       if(b[i]==b[j])
       {
          m++;
       }
    }
    if(m>1)
    {
       x++;
       t[u]=b[i];
       u++;
    }
 }
 printf("\n\n");
 for(u=0;u<x;u++)
 {
    printf("%i ",t[u]);
 }
 for(u=0;u<x;u++)
 {
    f=max(t[u],f1);
    f1=f;
 }
 printf("\n\n%d",f);
 getch();
 delete t;
}
depo111
0 / 0 / 0
Регистрация: 10.05.2009
Сообщений: 5
17.05.2009, 20:40     Простая задача, помогите найти макс. элементы в матрице #10
Помогите пожалуйста доделать програмку дана матрица размером А(5*5)
нужно заменить нулями элементы которые меньше максимального в строке
например вводим строку 1 4 7 2 7 нужно получить строку 0 0 7 2 7
(и так для всех строк двумерный массив)


#include <stdio.h>
#include <conio.h>
#define N 5
void main()
{clrscr();
int A[N][N],i,j,max,m,h,l=0;
FILE *fp;
fp=fopen("lab3.txt", "w");
for (i=0;i<N;i++)
for (j=0;j<N;j++)
{
printf ("Vvedite A[%d][%d]",i+1,j+1);
scanf ("%d", &A[i][j]);
}
clrscr();
printf ("icxodnaya matrica\n");
fprintf (fp,"icxodnaya matrica\n");
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
printf ("%d ",A[i][j]);
fprintf(fp,"%5d", A[i][j]);
}

printf("\n");
fprintf(fp,"\n");
}
printf("\n");
for (i=0;i<N;i++)
{ max=A[i][0];
for (j=0;j<N;j++)
if (A[i][j]>=max) max=A[i][j];
printf("Max %d ctroki %d\n",i+1,max);
fprintf(fp,"Max %d ctroki %d\n",i+1,max);
for (h=0;h<N;h++)
if (A[i][h]==max) l=h;
for (m=0;m<l;m++)
if (A[i][m]!=max) A[i][m]=0;
}
printf("\n");

fprintf (fp,"Rezultat raboti programmi\n");
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{ printf ("%d ",A[i][j]);
fprintf (fp,"%5d ",A[i][j]);
}
printf("\n");
fprintf(fp,"\n");
}
fclose(fp);
getch();
}
Ivannumberone
4 / 4 / 0
Регистрация: 17.05.2009
Сообщений: 27
17.05.2009, 20:48     Простая задача, помогите найти макс. элементы в матрице #11
Первую задачку можна было красиве рекрусивно сделать! Одной функцией!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2009, 20:52     Простая задача, помогите найти макс. элементы в матрице
Еще ссылки по теме:

Задача. Найти произведение элементов(<0) строки в матрице - C++
Здравствуйте, пытаюсь создать программу, не получается. Нужно найти произведение отрицательных элементов строки в матрице. И если в этой...

Найти максимальный и минимальный элементы в матрице - C++
Найти максимальный и минимальный элементы в матрице и их номера. С++

Найти максимальный и минимальный элементы в матрице - C++
1. Дан двумерный массив А. Найти максимальный и минимальный элементы в матрице и поменять их местами. Вывести новый массив на печать.

В квадратной матрице X(n,m) найти Максимальный и минимальный элементы - C++
В квадратной матрице X(n,m) найти Максимальный и минимальный элементы. Поэлементно поменять местами строку с максимальным элементом со...

В квадратной матрице найти максимальный и минимальный элементы - C++
В квадратной матрице найти максимальный элемент, расположенный над главной диагональю и минимальный, расположенный под. С++ исправить...


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

Или воспользуйтесь поиском по форуму:
ISergey
Maniac
Эксперт С++
1372 / 883 / 52
Регистрация: 02.01.2009
Сообщений: 2,652
Записей в блоге: 1
17.05.2009, 20:52     Простая задача, помогите найти макс. элементы в матрице #12
Ivannumberone, Ну так сделай. Мы посмотрим.
Yandex
Объявления
17.05.2009, 20:52     Простая задача, помогите найти макс. элементы в матрице
Ответ Создать тему
Опции темы

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