Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
232 / 214 / 63
Регистрация: 01.09.2012
Сообщений: 2,103
1

Удаление столбца из матрицы

31.10.2013, 10:49. Просмотров 1908. Ответов 7
Метки нет (Все метки)

Добрый день. Прошу ткнуть носом, где я опять дурак. Есть матрица на основе ArrayList задача простая как три копейки - удалить столбец согласно условию. Но или я дурак, или лыжи не едут.
вот код
Java
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
public static void f3()
    {
        Scanner input = new Scanner(System.in);
        System.out.println("Введите число столбцов : " );
        int m= Integer.parseInt(input.nextLine());
        System.out.println("Введите число строк : " );
        int n= Integer.parseInt(input.nextLine());
        System.out.println("Исходная матрица\n");
        
        ArrayList<ArrayList<Integer>> arrayList = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            ArrayList<Integer> row = new ArrayList<>(); 
            for (int j = 0; j < m; j++) {
                row.add((int)(Math.random()*30));                
            }
            arrayList.add(row);            
        }
        for (int i = 0; i < n; i++)         {
            for (int j = 0; j < m; j++)   { 
                System.out.print( arrayList.get(i).get(j)+"\t"); 
            } 
            System.out.println(); 
        }
        int count = 0;
        for (int i = 0; i < n; i++) {
            if(arrayList.get(i).get(0)>arrayList.get(i).get(m)){
                ArrayList<Integer> t = arrayList.remove(i);
                count++;
            }
        }
        
        for (int i = 0; i < n-count; i++)         {
            for (int j = 0; j < m; j++)   { 
                System.out.print( arrayList.get(i).get(j)+"\t"); 
            } 
            System.out.println(); 
        }
ошибка здесь
Java
1
2
            if(arrayList.get(i).get(0)>arrayList.get(i).get(m)){
                ArrayList<Integer> t = arrayList.remove(i);
Где я дурак?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2013, 10:49
Ответы с готовыми решениями:

Удаление строки (столбца) матрицы и отображение конечной матрицы
Всем привет,попросил бы как можно скорее реагировали,заранее спс. Такая вот задача,нужно удалить...

Удаление столбца матрицы
Здравствуйте. Есть матрица N*M, в ней нужно удалить k-ый столбец. Все эти данные вводятся с...

Удаление столбца матрицы
Пожалуйста, помогите решить задачу!!! Тема: &quot;Действия над строками и столбцами матрицы&quot; Задача:...

Удаление строки и столбца матрицы
дана матрица порядка N.вывести исходную матрицу,а также любые матрицы,полученные вычеркиванием i-ой...

7
57 / 57 / 12
Регистрация: 11.02.2013
Сообщений: 132
31.10.2013, 11:16 2
Java
1
 if(arrayList.get(i).get(0)>arrayList.get(i).get(m)){
тут вы явно выходите за пределы листа
нужно как минимум m -1
1
232 / 214 / 63
Регистрация: 01.09.2012
Сообщений: 2,103
31.10.2013, 11:22  [ТС] 3
-LM-, от души
0
57 / 57 / 12
Регистрация: 11.02.2013
Сообщений: 132
31.10.2013, 11:52 4
да ладно, помогло?)
вообшем получилось как-то так
только удаляется строка а не столбец, но судя из ваших условий так и было задумано
Кликните здесь для просмотра всего текста
Java
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
public static void f3() {
        Scanner input = new Scanner(System.in);
        System.out.println("Введите число столбцов : ");
        int m = Integer.parseInt(input.nextLine());
        System.out.println("Введите число строк : ");
        int n = Integer.parseInt(input.nextLine());
        System.out.println("Исходная матрица\n");
 
        ArrayList<ArrayList<Integer>> arrayList = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            ArrayList<Integer> row = new ArrayList<>();
            for (int j = 0; j < m; j++) {
                row.add((int) (Math.random() * 30));
            }
            arrayList.add(row);
        }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                System.out.print(arrayList.get(i).get(j) + "\t");
            }
            System.out.println();
        }
        Iterator<ArrayList<Integer>> iter = arrayList.iterator();
        while (iter.hasNext()) {
            ArrayList<Integer> it = iter.next();
            if (it.get(0) > it.get(m - 1))
                iter.remove();
        }
        System.out.println();
        for (int i = 0; i < arrayList.size(); i++) {
            for (int j = 0; j < arrayList.get(0).size(); j++) {
                System.out.print(arrayList.get(i).get(j) + "\t");
            }
            System.out.println();
        }
    }
1
232 / 214 / 63
Регистрация: 01.09.2012
Сообщений: 2,103
31.10.2013, 12:10  [ТС] 5
Не, надо удалять столбцы, в которых первый элемент больше последнего. Попробую разобраться. Просто я уже почти неделю сплю по часу, максимум два в сутки, голова вообще не соображает. Со свежей головой мне бы стыдно было такие вещи спрашивать.
0
-LM-
31.10.2013, 12:47
  #6

Не по теме:

дошло :)

0
232 / 214 / 63
Регистрация: 01.09.2012
Сообщений: 2,103
31.10.2013, 12:50  [ТС] 7
Цитата Сообщение от -LM- Посмотреть сообщение
согласно какому условию?)
удалить столбцы, в которых первый элемент больше последнего

Добавлено через 36 секунд
поспать не получится - сдавать сегодня, времени час остался.
0
152 / 152 / 10
Регистрация: 16.10.2012
Сообщений: 354
Записей в блоге: 1
31.10.2013, 16:36 8
Цитата Сообщение от Ded_Vasilij Посмотреть сообщение
удалить столбцы, в которых первый элемент больше последнего
Последний элемент имеет индекс m - 1, судя по вот этому коду:
Java
1
2
3
           for (int j = 0; j < m; j++) {
                row.add((int)(Math.random()*30));                
            }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2013, 16:36

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Удаление строки и столбца из матрицы
Добрый день. у Меня возникла проблема, не могу понять, как удалить из массива строку и столбец с...

Удаление строки и столбца из матрицы
Люди, помогите написать программу для удаления строк и столбцов из динамической двумерной матрицы,...

Удаление строки и столбца из матрицы
удаление из заданной матрицы строки и столбца, на пересечении которых находится наименьший по...

Удаление строки и столбца матрицы
Помогите с задачей!!!! Задача такая: Составьте программу удаления строки и столбца, которые...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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