Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2011, 20:19   #1
doter
Пользователь
 
Регистрация: 25.09.2010
Сообщений: 34
По умолчанию Наибольшие элементы квадратной матрицы

Задание такое : в квадратной матрице (размерность и матрица вводятся с клавиатуры) найти все наибольшие элементы , вывести на экран их значения и индексы . Вот мой код , он нормально работает , но он рассчитан на то , что в матрице 1 наиб. элемент (остальные элементы с таким же значением игнорируются) . Помогите ,пожалуйста , сделать правильно .
Код:
import java.util.*;
public class MaxValue {
        public static void main(String[] args){
                Scanner in = new Scanner(System.in);
                int n = in.nextInt();
                int [][]a = new int [n][n];
                for(int i=0;i<n;i++){                   
                        for(int j=0;j<n;j++){
                                a[i][j] = in.nextInt();
                                }                       
                        }
                int []index1 = new int [n*n];
                int []index2 = new int [n*n];
                int i,j,jmax,imax;
                int s = 0;
                int maximum = 0;
                int []max = new int [n*n];
                for(i=0;i<n;i++){       
                        for(j=jmax=0;j<n;j++){                          
                                if (a[i][j]>a[i][jmax]) jmax = j;
                                index1[s] = i;
                                index2[s] = jmax;
                                
                        }
                        max[i]=a[i][jmax];
                                s++;                            
                }
 
                for(i=imax=0;i<n*n;i++){
                        if (max[i]>max[imax])imax=i;
                        maximum = max[imax];
                }
                System.out.println("Max element is  " + maximum);
                System.out.println("Max element index is " + "(" +(index1[imax]+1) + ";" + (index2[imax]+1)+")");
        }               
                
        }
P.S. : поясню в чем заключается мой алгоритм : я нахожу максимальный элемент в каждой строке , записываю их в отдельный массив , а потом в этом массиве нахожу максимальный элемент .
doter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение Квадратной Матрицы Konrak Помощь студентам 3 16.05.2011 19:03
Все элементы выше главной диагонали квадратной матрицы, заменить на минимальный элемент (VisualBasic) ride013 Помощь студентам 4 03.05.2011 20:40
На главную диагональ матрицы поместить наибольшие элементы этой матрицы mivel Помощь студентам 2 23.12.2009 21:19
транспонирование квадратной матрицы 777UFO777 Общие вопросы Delphi 1 04.12.2008 19:31
Определитель квадратной матрицы Tomoyo Помощь студентам 22 04.11.2008 22:37