Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Наибольшие элементы квадратной матрицы

52K
13 ноября 2011 года
Gevorg
22 / / 10.04.2011
Задание такое : в квадратной матрице (размерность и матрица вводятся с клавиатуры) найти все наибольшие элементы , вывести на экран их значения и индексы . Вот мой код , он нормально работает , но он рассчитан на то , что в матрице 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[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[j]>a[jmax]) jmax = j;
                                index1 = i;
                                index2 = jmax;
                               
                        }
                        max=a[jmax];
                                s++;                            
                }
 
                for(i=imax=0;i<n*n;i++){
                        if (max>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. : поясню в чем заключается мой алгоритм : я нахожу максимальный элемент в каждой строке , записываю их в отдельный массив , а потом в этом массиве нахожу максимальный элемент .
23K
14 ноября 2011 года
rafaelkyrdan
123 / / 03.05.2011
Предположение : а нельзя в конце алгоритма когда уже известно значение масксимального элемента проверить существует ли еще элементы с таким же значением? Выходит двойная работа но можно собрать все элементы с максимальным значением
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог