Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 04.03.2016
Сообщений: 7
1

Поменять местами столбцы в матрице

01.04.2016, 08:16. Показов 5511. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот есть код : вычитывает сумму каждого столбца , теперь надо поменять столбцы по возрастанию их суммы . Не могу понять помогите пожалуйста
int m[][] = {{5 ,0,-1},
{7,11,-5},
{2,0,3},
};
int x=m.length ;

for (int j = 0; j < x; j++) {
s=0;
for (int i = 0; i < x; i++) {

s+=+m[i][j]; }
System.out.print(j + "\t"+s);
System.out.println();
}}

}

Добавлено через 20 минут
Получилось 14 11 -3 , нужно -3 11 14 {-1 0 5
-5 11 7
3 0 2 }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.04.2016, 08:16
Ответы с готовыми решениями:

Поменять местами строки и столбцы в матрице
Поменять местами строки и столбцы. class Stolb { public static void main(String...

В данной матрице n x m поменять местами указанные строки и столбцы
В данной действительности матрице размера n x m (n ≥ 3, m ≥ 3) поменять местами: а) строки с...

Поменять столбцы и строки массива местами
Помогите сделать задачку. &quot;Перевернуть&quot; массив. У вас есть двухмерный массив , придумайте способ...

Поменять местами столбцы в матрице
Код: #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; #include &lt;locale.h&gt; #include...

4
32 / 30 / 11
Регистрация: 27.09.2014
Сообщений: 359
01.04.2016, 09:40 2
zeldaun, Так ?

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
38
39
40
41
public class Main {
 
    public static void main(String[] args) {
 
        
        int s;
        int m[][] = {{5, 0,  -1},
                    { 7, 11, -5},
                    { 2, 0,   3},
                };
                int x=m.length ;
 
                for (int j = 0; j < x; j++) {
                    
                    s=0;
                    
                    for (int i = 0; i < x; i++) {
 
                            s += m[i][j]; }
                    
                    System.out.print(j + "\t" + s);
                    System.out.println();
                }
                
                System.out.println("\n");
                
                for(int j = x - 1; j  >= 0; j--){
                    
                    s = 0;
                     
                    for(int i = x - 1; i >= 0; i--){
                        
                        s += m[i][j];
                    }
                System.out.print(j + "\t" + s);
                System.out.println();
                }
                
    }
 
}
0
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
01.04.2016, 12:21 3
Можно так сделать
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
public class Jkl {
    public static void main(String[] args) {
        int[][] mas = new int[4][4];
        int[] ker = new int[4];
 
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                mas[i][j] = new Random().nextInt(9);
            }
        }
        System.out.println("выводим двухмерный массив");
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.print(mas[i][j] + " ");
            }
            System.out.println();
        }
 
 
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                ker[i] += mas[j][i];
            }
 
        }
 
        for (int i = 0; i < ker.length; i++) {
            int min = ker[i];
            int min_i = i;
 
            for (int j = i + 1; j < ker.length; j++) {
 
                if (ker[j] < min) {
                    min = ker[j];
                    min_i = j;
                }
            }
 
            if (i != min_i) {
                int tmp = ker[i];
                ker[i] = ker[min_i];
                ker[min_i] = tmp;
            }
            if (i != min_i) {
                for (int x = 0; x < 4; x++) {
                    int tmp = mas[x][i];
                    mas[x][i] = mas[x][min_i];
                    mas[x][min_i] = tmp;
                }
            }
        }
        System.out.println("выводим результат сортировки двухмерного массива");
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.print(mas[i][j] + " ");
            }
            System.out.println();
        }
    }
}
Добавлено через 9 минут
Есть другой вариант решения, но он немного отходит от поставленной задаче. Я клоню к тому, что менять местами столбцы это довольно затратная операция. Куда проще "жонглировать" индексами и прочими указателями на информацию. Если в случае сортировки человеку нужно чтобы вид отображался соответствующий, то какой смысл менять местами значения в оперативке, когда можно просто в определенном порядке вывести информацию и забить как они расположены в памяти)))
0
32 / 30 / 11
Регистрация: 27.09.2014
Сообщений: 359
01.04.2016, 12:34 4
Левиафам, А теперь посмотри на свой код и строку ТС
s+=+m[i][j];
, как думаешь человеку который пишет +=+ легче понять твой код или мой?
0
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
01.04.2016, 13:44 5
не надо сравнивать мой код и твой...
0
01.04.2016, 13:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2016, 13:44
Помогаю со студенческими работами здесь

Поменять местами в матрице i-й и j-й столбцы
Даны натуральные числа i, j, вещественная матрица размера M x N. Поменять местами в матрице i-й и...

Поменять местами столбцы в матрице
Преобразовать массив G(m,n), поменяв местами элементы К-го и (К+1)-го столбцов: G= ...

Поменять местами столбцы в матрице
Здравствуйте, помогите пожалуйста. Мучаюсь с этой задачей уже две недели)) Вообще задание...

Поменять местами строки и столбцы в матрице.
Дана матрица размером 7x4. Переставляя её строки и столбцы, добейтесь того, чтобы наибольший...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru