1 package pl7_ex_dem1;
2
3 import java.util.Formatter;
4 import java.util.Scanner;
5
6
7 @author
8
9 public class Main {
10
11 private static Scanner inp = new Scanner(System.in);
12 private static Formatter out = new Formatter(System.out);
13
14
15 public static void listaMatriz(int[][] m, int l, int c) {
16 out.format("%s%n", "Listagem da matriz:");
17
18 for (int i = 0; i < l; i++) {
19 for (int j = 0; j < c; j++) {
20 out.format("%5d", m[i][j]);
21 }
22 out.format("%n");
23 }
24 }
25
26 private static void leMatriz(int[][] m, int lin, int col) {
27
28 for (int l = 0; l < lin; l++) {
29 for (int c = 0; c < col; c++) {
30 out.format("Elemento da linha %d coluna %d:", l + 1, c + 1);
31 m[l][c] = inp.nextInt();
32 }
33 }
34 }
35
36 private static void trocaColunasMatriz(int ori, int dest, int[][] m, int lin) {
37 int temp;
38
39 for (int l = 0; l < lin; l++) {
40 temp = m[l][ori];
41 m[l][ori] = m[l][dest];
42 m[l][dest] = temp;
43 }
44 }
45
46 private static void ordenaColMatriz(int[][] m, int lin, int col) {
47
48
49 for (int c = 0; c < col; c++) {
50 m[lin][c] = 0;
51 for (int l = 0; l < lin; l++) {
52 m[lin][c] += m[l][c];
53 }
54 }
55
56
57 for (int i = 0; i < col - 1; i++) {
58 for (int j = i + 1; j < col; j++) {
59 if (m[lin][i] > m[lin][j]) {
60 trocaColunasMatriz(i, j, m, lin+1);
61 }
62 }
63 }
64
65 }
66
67
68
69
70
71
72 public static void main(String[] args) {
73 int l, c;
74
75
76 int[][] mat;
77
78
79 do {
80 out.format("Número de linhas:");
81 l = inp.nextInt();
82 } while (l < 1);
83
84 do {
85 out.format("Número de colunas:");
86 c = inp.nextInt();
87 } while (c < 1);
88
89
90
91 mat = new int[l+1][c];
92
93
94 leMatriz(mat, l, c);
95
96
97 listaMatriz(mat, l, c);
98
99
100 ordenaColMatriz(mat, l, c);
101
102
103 listaMatriz(mat, l, c);
104 }
105 }
106
107